Repository navigation
Conversation
d078d35 to
2d4f6ba
Compare
|
Couverture des fonctionnalités du jalon 9.27 ajoutée (suite) :
|
2d4f6ba to
96c8677
Compare
StephaneTrebel
left a comment
There was a problem hiding this comment.
Les corrections des deux scénarios d’intégration sont cohérentes avec les services Nest actuels et les contrôles CI sont verts. Les ajouts HTTP admin restent isolés du réseau externe ; aucun point bloquant relevé, mais la MR est encore en brouillon et ne reçoit pas d’approbation.
shikanime
left a comment
There was a problem hiding this comment.
Alignement justifié : les specs cassaient sur un contrat antérieur à l'orchestration DSO, et les preuves d'exécution (5/5 contre l'environnement d'intégration réel) appuient l'adaptation. La suppression de l'écriture KV brute NEXUS est cohérente avec la nouvelle synthèse côté plugin, mais l'assertion de remplacement est vacuelle et les cas false/null ne sont plus couverts nulle part. Le nouveau spec admin-role est un plus (validation HTTP 400/201/204) mais utilise mock() là où la convention ratifiée demande mockDeep. Le flag draft reste approprié tant que la campagne e2e du jalon 9.27 n'est pas soldée. Détail : le corps commence par un # Why en h1 au lieu du format ## What/## Why attendu.
9c4ce19 to
7b7678f
Compare
7b7678f to
e1b2461
Compare
…nd naming
Aligns the two outliers with the established conventions: project-services renames
canRunServicesE2E/describeWithServices to
canRunProjectServicesE2E/describeWithProjectServices matching every other spec;
admin-role/admin-token HTTP specs gain the runIf(E2E) gate + canRun*/describeWith*
naming used by the rest of the folder.
Converts the admin-role/admin-token HTTP specs to real e2e: no mocks, real Prisma
and the real UserGuard auth chain (seeded AdminToken + x-dso-token header). This
uncovered a genuine bug: makeAdminTokenSelect never selected owner.id (nor
status/expirationDate/permissions), so every admin-token authenticated request
crashed in updateLastUse with `user.update({ where: { id: undefined } })` (HTTP
500) and token permissions were never resolved. The select is fixed at the shared
source; both specs pass 2x consecutively against the integration environment.
Refs #2417
Co-authored-by: Automata <automata@shikanime.studio>
Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr>
Change-Id: I94bffa90189d5608ee0cb8b989259db56a6a6964
e1b2461 to
5f28da0
Compare
|
StephaneTrebel
left a comment
There was a problem hiding this comment.
✨ Revue sans finding : le select AdminToken couvre désormais les champs consommés par l’authentification, et les tests HTTP utilisent le vrai guard avec une donnée persistée. La CI est verte ; aucune issue n’est liée directement à cette MR.

0 New Issues
0 Fixed Issues
0 Accepted Issues
Pourquoi
Les specs e2e
project-servicesetproject-secretséchouaient systématiquement contre l'environnement d'intégration HP (constaté lors de la validation du jalon 9.27) : elles assertent un comportement antérieur à l'orchestration DSO, pas le contrat courant. Accessoirement, les deux specs admin HTTP utilisaient des mocks de service, hors convention e2e.Quoi
project-services.e2e-spec.ts: renommagecanRunServicesE2E/describeWithServices→canRunProjectServicesE2E/describeWithProjectServices, aligné sur toutes les autres specs du dossier ; stub deUSE_GITLAB/USE_NEXUSavant la compilation du module — sans eux,ConditionalModule.registerWhenne registra que keycloak etget()renvoyait une liste vide. Vérifié : 3/3 passent.project-secrets.e2e-spec.ts: les URLs de dépôts NEXUS sont désormais synthétisées par le plugin depuis la config ; la spec active les dépôts npm/maven du projet (ProjectPlugin) et asserte explicitement les trois URLs synthétisées (MAVEN_REPO_RELEASE,MAVEN_REPO_SNAPSHOT,NPM_REPO) au lieu d'un passe-plat KV brut. Assertion du groupe VAULT synthétique maintenue. Vérifié : 2/2 passent contre le Vault réel, 3 runs.admin-role.e2e-spec.ts/admin-token.e2e-spec.ts: conversion en e2e réel (plus de mock) —UserGuardréel,AdminTokenseedé en base, authentification via l'en-têtex-dso-token.dso-token.utils.ts) :makeAdminTokenSelectne sélectionnait niowner.id, nistatus/expirationDate/permissions— chaque requête authentifiée par admin-token répondait 500 (user.update({ where: { id: undefined } })) et les permissions n'étaient jamais résolues. Invisible aux specs mockées ; révélé par la conversion e2e.Preuves d'exécution (environnement d'intégration réel,
INTEGRATION=true E2E=1) :vitest run test/project-secrets.e2e-spec.ts→ 2/2 passed (x3)vitest run test/admin-role.e2e-spec.ts test/admin-token.e2e-spec.ts→ 8/8 passed (x2)Références
invalid_grantsur le compte dsoadmin) sont environnementaux.