Skip to content

🧪 Campaign: full console test coverage vs server-nestjs migration (unit + e2e + Playwright) #2574

Description

@shikanime

Objectif / Goal

Tester chaque usage console → services externes (GitLab, Keycloak, Vault, ArgoCD, Nexus, Registry, SonarQube, Harbor) contre apps/server-nestjs, pour trouver les bugs et incompatibilités de la migration apps/serverapps/server-nestjs, et couvrir 100 % des features customer-facing touchées.

Contexte / Context

  • apps/server (Fastify) est figé — ne pas modifier.
  • apps/server-nestjs est le backend cible.
  • Le mapping legacy→nestjs repose sur des événements : apps/server fire hook.<entity>.<verb> ; nestjs utilise EventEmitter2 avec @OnEventcapturePluginResult.
  • Checklist de parité : https://github.com/cloud-pi-native/console (cf. MIGRATION-PARITY-MATRIX.md).

Livrables / Deliverables

  1. Tests unitaires (vitest) couvrant chaque chemin console→service externe + le contrat emit→consumer.
  2. Tests e2e (apps/server-nestjs/test/*.e2e-spec.ts, gated E2E=1) pour chaque ressource migrée.
  3. Playwright pour les journeys UI customer-facing (cross-service fragility → socle cahier).
  4. Issues une par bug/incoherence trouvée, itérées jusqu'au vert.

Statut / Status

  • Baseline unitaire : 578 passés / 59 skipped (Node 24, CI=true).
  • Seed validé : app-events.service.spec.ts — parity zone.* (listener sans émetteur). 12/12 ✅
  • Blocage infra : les hôtes d'intégration *.dso.cpin-hp.numerique-interieur.fr ne résolvent pas en DNS depuis cette machine dev → les tests e2e sont exécutés sur un host connecté / en CI.

Sous-tâches / Sub-tasks

  • Unit: parity matrix emit→consumer (app-events.service.spec.ts)
  • Unit: couverture 100 % chemins GitLab (gitlab.service.spec.ts)
  • Unit: couverture 100 % chemins Keycloak + admin-role sync (keycloak.service.spec.ts)
  • Unit: couverture 100 % chemins Vault y.c. zone.* (vault.service.spec.ts)
  • Unit: couverture 100 % chemins ArgoCD/Nexus/Registry/SonarQube
  • E2E: vault.e2e-spec.ts zone.* case (gap)
  • E2E: keycloak admin-role group sync (gap)
  • E2E: argocd/nexus/registry/sonarqube rollback + retry paths (gaps)
  • Playwright: create-project full plugin sync journey
  • Socle cahier: cross-service scenarios inscrits dans Tests Fonctionnels/

Gates de sortie

pnpm --filter @cpn-console/server-nestjs run lint && pnpm --filter @cpn-console/server-nestjs test vert + chaque sous-tâche clôturée (issue liée + test vert). E2E validé sur host connecté.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions