# 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.
