|
============================================================
|
|
QA SMOKE — Redmine #29 (épopée)
|
|
"Ajouter les rôles et compétences Agile manquants dans les
|
|
listes et filtres"
|
|
Projet : GetYourJob (id 11) | Statut entrée : QA
|
|
PR : https://github.com/omdev-tech/GetYourJob/pull/232 (base dev)
|
|
Branche : feat/redmine-29-agile-roles
|
|
Worktree testé :
|
|
.worktrees/redmine-29-agile-roles
|
|
Date : 2026-06-11
|
|
Verdict : PASS
|
|
============================================================
|
|
|
|
NOTE : aucun secret n'est inclus dans ce rapport (aucune
|
|
valeur d'environnement, clé API, URL DB, token ou cookie).
|
|
|
|
------------------------------------------------------------
|
|
MÉTHODE
|
|
------------------------------------------------------------
|
|
Un smoke UI complet (dev server + DB live + auth prod) n'est
|
|
pas praticable dans cet environnement. Conformément à la
|
|
consigne, la preuve de smoke repose sur les suites vitest
|
|
ajoutées (RoleNormalizationService + AgileRolesAndSkills.
|
|
integration), qui assertent EXACTEMENT les surfaces de données
|
|
qui pilotent à la fois les sélecteurs (profil / offre) ET les
|
|
filtres de recherche :
|
|
- ROLE_PICKER_TAXONOMY -> InlineRoleSelector + filtre rôle
|
|
(TopFilterBar / MobileFilterModal)
|
|
- EnhancedDataNormalizationService.searchTechnologies
|
|
-> autocomplete compétences/outils
|
|
(sélecteur + suggestions de filtre)
|
|
- RoleNormalizationService.normalizeRole
|
|
-> mappe les libellés bruts des
|
|
offres/profils vers l'enum utilisé
|
|
par le filtre (pertinence du filtre).
|
|
Inspection source des fichiers modifiés en complément.
|
|
|
|
------------------------------------------------------------
|
|
COMMANDES EXÉCUTÉES
|
|
------------------------------------------------------------
|
|
$ npx prisma generate
|
|
-> Generated Prisma Client (v6.12.0) [OK]
|
|
|
|
$ npx vitest run \
|
|
src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts \
|
|
src/domain/services/__tests__/RoleNormalizationService.test.ts
|
|
-> Test Files 2 passed (2)
|
|
-> Tests 236 passed (236) [OK]
|
|
|
|
$ npx vitest run AgileRolesAndSkills.integration --reporter=verbose
|
|
-> 13 passed (13) [OK] (détail ci-dessous)
|
|
|
|
$ npx tsc --noEmit
|
|
-> Erreurs présentes MAIS uniquement dans des fichiers NON
|
|
touchés par #29 (pré-existantes, repo-wide ; tsc/lint
|
|
standalone est cassé sur Next 16, le build s'appuie sur
|
|
ignoreBuildErrors). Aucun fichier non-test modifié par #29
|
|
n'a d'erreur tsc. Les seules erreurs sur des fichiers #29
|
|
sont "Cannot find name describe/expect" dans les *.test.ts
|
|
(globals vitest non résolus par tsc standalone — les tests
|
|
passent au runtime).
|
|
=> PAS de régression de type imputable à #29.
|
|
|
|
------------------------------------------------------------
|
|
INSPECTION SOURCE (extraits, fichiers modifiés par 1de0426)
|
|
------------------------------------------------------------
|
|
src/lib/role-picker-taxonomy.ts
|
|
category: 'Leadership & Architecture'
|
|
{ value: 'AGILE_COACH', label: 'Coach Agile' }
|
|
{ value: 'SCRUM_MASTER_SAFE', label: 'Scrum Master SAFe' }
|
|
{ value: 'RELEASE_TRAIN_ENGINEER', label: 'Release Train Engineer (RTE)' }
|
|
|
|
prisma/schema.prisma (enum RoleType)
|
|
AGILE_COACH
|
|
SCRUM_MASTER_SAFE
|
|
RELEASE_TRAIN_ENGINEER
|
|
+ migration prisma/migrations/20260611190000_add_agile_scale_role_types/migration.sql
|
|
|
|
src/domain/entities/TechnologyStackRemainingCategories.ts
|
|
nouvelle sous-catégorie 'agile-methodologies-tools' :
|
|
Coaching Agile / Amélioration continue / Agilité à l'échelle
|
|
Jira / Confluence / Miro
|
|
|
|
------------------------------------------------------------
|
|
ACCEPTANCE CRITERIA -> RÉSULTAT
|
|
------------------------------------------------------------
|
|
[OK] AC1 Coach Agile, Scrum Master SAFe, RTE dispo dans
|
|
"Leadership & Architecture" (sélecteur profil/offre).
|
|
(test: roles live in "Leadership & Architecture")
|
|
[OK] AC2 Compétences Agilité à l'échelle, Coaching Agile,
|
|
Amélioration continue disponibles.
|
|
(test: skills searchable)
|
|
[OK] AC3 Outils Confluence + Miro disponibles ; Jira présent.
|
|
(test: tools Jira/Confluence/Miro searchable)
|
|
[OK] AC4 Nouveaux rôles/compétences/outils dans les filtres
|
|
de recherche (ALL_ROLE_TYPES + autocomplete).
|
|
(test: present in flat ALL_ROLE_TYPES list)
|
|
[OK] AC5 Filtre pertinent : "Coach Agile"->AGILE_COACH,
|
|
"RTE"->RELEASE_TRAIN_ENGINEER (un libellé brut
|
|
normalise vers l'enum envoyé par le filtre).
|
|
(test: role-string search resolves to the right enum)
|
|
[OK] AC6 Règles de priorité role-normalization.md respectées :
|
|
"Scrum Master SAFe" distinct de "Scrum Master".
|
|
(test: SAFe -> SCRUM_MASTER_SAFE, NOT generic bucket)
|
|
[OK] AC7 Aucune régression : "Scrum Master" -> SCRUM_MASTER,
|
|
React résout toujours, tous les rôles existants
|
|
présents.
|
|
(tests: no-regression cases, 223 RoleNormalization
|
|
cases verts)
|
|
|
|
------------------------------------------------------------
|
|
DÉTAIL — AgileRolesAndSkills.integration (13 tests, verbose)
|
|
------------------------------------------------------------
|
|
RUN v4.0.18 /home/naqued/Development/omdev/GetYourJob/git/GetYourJob/.worktrees/redmine-29-agile-roles
|
|
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile roles in the picker / filter taxonomy (#57, #65) > Coach Agile, Scrum Master SAFe and RTE live in "Leadership & Architecture" 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile roles in the picker / filter taxonomy (#57, #65) > the generic Scrum Master stays out of Leadership & Architecture (kept distinct) 0ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile roles in the picker / filter taxonomy (#57, #65) > the new roles are filterable (present in the flat ALL_ROLE_TYPES list that feeds the filter) 0ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile roles in the picker / filter taxonomy (#57, #65) > the new roles expose human labels (chip / option text) 0ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile roles in the picker / filter taxonomy (#57, #65) > no regression: every existing role is still present in the taxonomy 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Filtering relevance — a role-string search resolves to the right enum (#60, #65) > "Coach Agile" offer normalizes to AGILE_COACH (matches the Coach Agile filter) 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Filtering relevance — a role-string search resolves to the right enum (#60, #65) > "Release Train Engineer" offer normalizes to RELEASE_TRAIN_ENGINEER 0ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Filtering relevance — a role-string search resolves to the right enum (#60, #65) > "Scrum Master SAFe" offer normalizes to SCRUM_MASTER_SAFE — NOT the generic bucket 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Filtering relevance — a role-string search resolves to the right enum (#60, #65) > no regression: a plain "Scrum Master" offer still normalizes to SCRUM_MASTER 0ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile skills & tools in the selector / filter autocomplete (#57, #65) > tools Jira, Confluence and Miro are now searchable (were absent before) 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile skills & tools in the selector / filter autocomplete (#57, #65) > skills Agilité à l'échelle, Coaching Agile, Amélioration continue are searchable 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile skills & tools in the selector / filter autocomplete (#57, #65) > skills are reachable by their domain aliases (relevance for free-text feeds) 1ms
|
|
✓ ci src/domain/services/__tests__/AgileRolesAndSkills.integration.test.ts > Agile skills & tools in the selector / filter autocomplete (#57, #65) > no regression: a core technology still resolves 0ms
|
|
|
|
Test Files 1 passed (1)
|
|
Tests 13 passed (13)
|
|
Start at 21:20:40
|
|
Duration 302ms (transform 149ms, setup 0ms, import 179ms, tests 11ms, environment 0ms)
|
|
|