Files
unionflow-mobile-apps/docs/TESTS_INTEGRATION_FINANCE_WORKFLOW.md
dahoud d094d6db9c Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
2026-03-15 16:30:08 +00:00

295 lines
7.4 KiB
Markdown

# Tests d'Intégration Finance Workflow - Guide Unique
**Date:** 2026-03-14
**Objectif:** Tester l'intégration mobile-backend avec les VRAIS utilisateurs Keycloak existants
---
## ✅ État Actuel Keycloak (Vérifié)
### Realm: `unionflow` ✓ Existe
### Client: `unionflow-mobile` ✓ Existe
### Utilisateurs: **11 utilisateurs** déjà créés
---
## 👥 Utilisateurs de Test Disponibles
### Pour les Tests Finance Workflow, utiliser:
#### 1. SUPER_ADMIN (tous les droits)
- **Email:** `superadmin@unionflow.test`
- **Mot de passe:** *(demander à l'équipe ou réinitialiser via Keycloak Admin)*
- **Rôles:** SUPER_ADMIN
- **Peut:** Approuver LEVEL1/2/3, créer budgets, tout consulter
#### 2. ADMIN_ORGANISATION (approbateur)
- **Email:** `admin.meska@unionflow.test` OU `admin.mukefi@unionflow.test`
- **Mot de passe:** *(idem)*
- **Rôles:** ADMIN_ORGANISATION, USER
- **Peut:** Approuver LEVEL1/2, créer budgets, consulter stats
#### 3. MEMBRE_ACTIF (demandeur)
- **Email:** `membre.meska@unionflow.test`
- **Mot de passe:** *(idem)*
- **Rôles:** MEMBRE, MEMBRE_ACTIF, USER
- **Peut:** Créer demandes de cotisation, consulter ses propres demandes
---
## 🚀 Démarrage Rapide
### 1. Services Backend (3 commandes)
```bash
# Terminal 1: Quarkus
cd unionflow/unionflow-server-impl-quarkus
mvn compile quarkus:dev -D"quarkus.http.port=8085"
# Terminal 2: Keycloak (si pas démarré)
cd unionflow
docker-compose up -d keycloak
# Terminal 3: PostgreSQL (si pas démarré)
docker-compose up -d postgres
```
**Vérifications:**
- ✓ Quarkus: http://localhost:8085/q/health
- ✓ Keycloak: http://localhost:8180
- ✓ PostgreSQL: port 5432
---
### 2. App Mobile Flutter
```bash
# Terminal 4: App mobile
cd unionflow/unionflow-mobile-apps
# Android
flutter run --dart-define=ENV=dev
# iOS
flutter run --dart-define=ENV=dev -d ios
# Chrome (debug rapide)
flutter run -d chrome --dart-define=ENV=dev
```
**Note:** L'URL backend (`http://localhost:8085` ou `http://10.0.2.2:8085`) est configurée automatiquement via `AppConfig` en mode dev.
---
## 🧪 Scénario de Test (15 minutes)
### Étape 1: Login Membre
1. **Dans l'app mobile:**
- Login: `membre.meska@unionflow.test`
- Password: *(voir avec l'équipe)*
2. **Créer une cotisation:**
- Menu → "Contributions" ou "Mes Cotisations"
- "+" → Nouvelle contribution
- Montant: 50,000 XOF
- Période: Mars 2026
- Soumettre
3. **Vérifier:**
- ✅ Message "Demande créée, en attente d'approbation"
- ✅ Menu "Finance Workflow" → Demande visible avec statut PENDING
---
### Étape 2: Login Admin → Approuver
4. **Se déconnecter et se reconnecter:**
- Login: `admin.meska@unionflow.test`
5. **Consulter les approbations:**
- Menu → "Finance Workflow" → "Approbations en attente"
- ✅ Badge avec nombre d'approbations
- ✅ La cotisation de membre.meska apparaît
6. **Approuver la transaction:**
- Cliquer sur la carte
- Bouton "Approuver"
- Commentaire (optionnel): "Cotisation conforme"
- Confirmer
7. **Vérifier:**
- ✅ Toast "Transaction approuvée avec succès"
- ✅ Statut = VALIDATED (car LEVEL1 = 1 approbation suffit)
- ✅ Badge vert "Approuvé"
---
### Étape 3: Créer un Budget (Admin)
8. **Toujours connecté en tant qu'admin:**
- Menu → "Finance Workflow" → "Budgets"
- "+" → Nouveau budget
9. **Remplir le formulaire:**
```
Nom: Budget Test Mobile Mars 2026
Période: Mensuel
Année: 2026
Mois: 3
Devise: XOF
```
10. **Ajouter 3 lignes budgétaires:**
- Cotisations: 2,000,000 XOF
- Épargne: 1,000,000 XOF
- Opérationnel: 500,000 XOF
11. **Valider et vérifier:**
- ✅ Budget créé (Total = 3,500,000 XOF)
- ✅ Détail visible avec les 3 lignes
- ✅ Tracking affiche 0% réalisé
---
## ✅ Checklist de Validation
### Authentification & Sécurité
- [ ] Login membre réussi avec JWT
- [ ] Login admin réussi avec JWT
- [ ] Endpoints protégés (401 sans token)
- [ ] Rôles respectés (membre ne peut pas approuver)
### Workflow Approbations
- [ ] Création demande via module Contributions
- [ ] Demande apparaît dans Finance Workflow (PENDING)
- [ ] Bouton "Approuver" visible uniquement pour admin
- [ ] Approbation fonctionne (POST → 200 OK)
- [ ] Statut mis à jour (VALIDATED)
- [ ] Toast de succès affiché
- [ ] Compteur approbations mis à jour
### Gestion Budgets
- [ ] Création budget via formulaire
- [ ] 3 lignes budgétaires ajoutées
- [ ] Total calculé automatiquement (3.5M)
- [ ] Détail budget affiché
- [ ] Tracking budgétaire accessible (0% initialement)
### Performance & UX
- [ ] Chargement < 2 secondes
- [ ] Aucun lag / freeze
- [ ] Animations fluides
- [ ] Pull to refresh fonctionne
---
## 📊 Logs à Vérifier
### Backend Quarkus (Terminal 1)
```
INFO ApprovalService - Approbation de la transaction ...
INFO BudgetService - Création d'un budget ...
```
### Mobile Flutter (Console)
```
[INFO] Loading approvals for organization ...
[SUCCESS] Transaction approved successfully
[INFO] Creating budget: Budget Test Mobile Mars 2026
```
---
## 🆘 Troubleshooting
**Problème:** "Mot de passe inconnu pour les utilisateurs de test"
→ **Solution:** Réinitialiser via Keycloak Admin
```
1. http://localhost:8180/admin/master/console
2. Login: admin / admin
3. Realm: unionflow → Users
4. Sélectionner utilisateur → Onglet Credentials
5. Set password (Temporary: OFF)
```
**Problème:** "App ne se connecte pas au backend"
→ **Solution:** Vérifier URL backend dans AppConfig
- Android émulateur: `http://10.0.2.2:8085`
- iOS/Chrome: `http://localhost:8085`
**Problème:** "Erreur 401 Unauthorized"
→ **Solution:** Vérifier que Keycloak tourne et token JWT valide
**Problème:** "Bouton Approuver invisible/grisé"
→ **Solution:** Se connecter avec `admin.meska@unionflow.test` ou `superadmin@unionflow.test`
---
## 📝 Rapport de Test
**Après les tests, compléter:**
```markdown
### Résultats
Date: ___________
Testeur: ___________
#### Scénario 1: Workflow Approbation
- Création demande: ☐ ✅ ☐ ❌
- Approbation réussie: ☐ ✅ ☐ ❌
- Statut mis à jour: ☐ ✅ ☐ ❌
#### Scénario 2: Gestion Budgets
- Création budget: ☐ ✅ ☐ ❌
- Lignes ajoutées: ☐ ✅ ☐ ❌
- Tracking affiché: ☐ ✅ ☐ ❌
#### Problèmes Identifiés
1. [Description]
- Gravité: Bloquant / Majeur / Mineur
- Étapes: ...
#### Conclusion
- ☐ ✅ Intégration VALIDÉE
- ☐ ⚠️ Problèmes mineurs
- ☐ ❌ Problèmes bloquants
```
---
## 🎯 Fichiers de Documentation Consolidés
Après nettoyage, **4 fichiers** restants (DRY) :
1. **TESTS_INTEGRATION_FINANCE_WORKFLOW.md** (CE FICHIER)
- Guide unique de test intégration avec vrais utilisateurs
2. **FINANCE_WORKFLOW_BACKEND_COMPLETE.md**
- Documentation technique backend (architecture, code)
3. **FINANCE_WORKFLOW_TEST_CHECKLIST.md**
- Checklist détaillée P0 backend (migration, démarrage)
4. **FINANCE_WORKFLOW_TEST_REPORT.md**
- Rapport de tests backend (endpoints REST validés)
**Obsolètes (supprimés):**
- FINANCE_WORKFLOW_MANUAL_TEST_GUIDE.md (redondant)
- FINANCE_WORKFLOW_INTEGRATION_MOBILE.md (redondant)
- START_INTEGRATION_TEST.md (redondant)
- FINANCE_WORKFLOW_SESSION_SUMMARY.md (obsolète)
- FINANCE_WORKFLOW_FINAL_STATUS.md (obsolète)
- START_QUARKUS_DEV.md (redondant)
---
**Prêt à tester ! 🚀**
Utilisez les VRAIS utilisateurs Keycloak existants - pas besoin d'en créer de nouveaux.