Stratégie QA & Tests Backend
Cette section détaille la stratégie de tests, les workflows et les technologies utilisés dans le dépôt Control-Hub-Back.
🛠 Stack Technologique
- Framework: AdonisJS (Node.js)
- Langage: TypeScript
- Base de données:
- MySQL (Principale)
- Redis (Cache & Session)
- Framework de Test: Japa
- Linting & Formatage: ESLint, Prettier
🧪 Stratégie de Tests
Nous utilisons Japa pour exécuter à la fois les tests unitaires et fonctionnels.
Suites de Tests
- Tests Unitaires: Situés dans
tests/unit. Se concentrent sur les composants individuels, les helpers et la logique isolée. - Tests Fonctionnels: Situés dans
tests/functional. Couvrent les endpoints API, les interactions avec la base de données et les flux d'intégration.
Exécuter les Tests
Pour lancer les tests localement :
pnpm test
Cette commande exécute node ace test.
🔄 Workflows CI/CD
Le dépôt utilise GitHub Actions pour l'intégration continue et l'assurance qualité.
1. Pipeline CI (ci.yml)
Déclenché sur push et pull_request vers master et dev.
Étapes :
- Quality Gates:
- Vérification de la compilation TypeScript (
pnpm typecheck) - Linting (
pnpm lint) - Vérification du formatage (
pnpm format --check)
- Vérification de la compilation TypeScript (
- Audit de Sécurité:
- Exécute
pnpm audit --prodpour vérifier les vulnérabilités.
- Exécute
- Tests:
- Exécute les tests Japa (
pnpm test) avec des conteneurs de service MySQL et Redis.
- Exécute les tests Japa (
- Vérification du Build:
- Compile le projet (
pnpm build) pour s'assurer qu'il est déployable.
- Compile le projet (
2. Analyse SonarQube (sonar.yml)
Déclenché sur push et pull_request vers main, dev, et master.
- Exécute les tests unitaires avec couverture (
npx c8 ...). - Effectue un scan SonarQube pour la qualité du code et l'analyse de sécurité.
- Applique les vérifications Quality Gate.
♿ Accessibilité
Non applicable pour ce service backend.