Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts). Signed-off-by: lions dev Team
This commit is contained in:
294
docs/TESTS_INTEGRATION_FINANCE_WORKFLOW.md
Normal file
294
docs/TESTS_INTEGRATION_FINANCE_WORKFLOW.md
Normal file
@@ -0,0 +1,294 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user