Description
Le test unitaire gitlabService > handleUpsert > proactively rotates the mirror token when the vault secret is older than the rotation threshold (apps/server-nestjs/src/modules/gitlab/gitlab.service.spec.ts) est instable : il échoue de manière intermittente en CI (ex. runs 34332426568, 34332788033) avec revokeProjectToken — Number of calls: 0, alors qu'il passe localement.
Cause racine : le test génère la date du secret Vault avec faker.date.past({ years: 2 }), soit un tirage uniforme dans [0 ; 730] jours. Le seuil de rotation par défaut vaut 250 jours (GITLAB_MIRROR_TOKEN_ROTATION_THRESHOLD_DAYS). Environ un tiers des tirages tombent sous le seuil : la branche de rotation ne se déclenche pas, revokeProjectToken n'est jamais appelé et l'assertion échoue.
Correctif attendu : borner la date du secret au-delà du seuil (par exemple faker.date.past({ years: 2 }) remplacé par une date fixe ou garanties > 250 jours) pour rendre le test déterministe.
Etapes de reproduction
- Lancer
pnpm vitest run src/modules/gitlab/gitlab.service.spec.ts dans apps/server-nestjs sur une branche contenant le test (main inclus).
- Répéter jusqu'à observer l'échec (probabilité d'environ 1/3 par tirage de faker).
- Voir
AssertionError: expected "vi.fn()" to be called with arguments: [ { id: 123, …(18) }, 11 ] — Number of calls: 0.
Captures d'écran
Logs
Navigateurs
OS
Version de la console impactée
main (depuis f0139b6 « feat(server-nestjs): proactive GitLab mirror token rotation with enforced headroom »)
Définition du fini
Description
Le test unitaire
gitlabService > handleUpsert > proactively rotates the mirror token when the vault secret is older than the rotation threshold(apps/server-nestjs/src/modules/gitlab/gitlab.service.spec.ts) est instable : il échoue de manière intermittente en CI (ex. runs 34332426568, 34332788033) avecrevokeProjectToken — Number of calls: 0, alors qu'il passe localement.Cause racine : le test génère la date du secret Vault avec
faker.date.past({ years: 2 }), soit un tirage uniforme dans [0 ; 730] jours. Le seuil de rotation par défaut vaut 250 jours (GITLAB_MIRROR_TOKEN_ROTATION_THRESHOLD_DAYS). Environ un tiers des tirages tombent sous le seuil : la branche de rotation ne se déclenche pas,revokeProjectTokenn'est jamais appelé et l'assertion échoue.Correctif attendu : borner la date du secret au-delà du seuil (par exemple
faker.date.past({ years: 2 })remplacé par une date fixe ou garanties > 250 jours) pour rendre le test déterministe.Etapes de reproduction
pnpm vitest run src/modules/gitlab/gitlab.service.spec.tsdans apps/server-nestjs sur une branche contenant le test (main inclus).AssertionError: expected "vi.fn()" to be called with arguments: [ { id: 123, …(18) }, 11 ] — Number of calls: 0.Captures d'écran
Logs
Navigateurs
OS
Version de la console impactée
main (depuis f0139b6 « feat(server-nestjs): proactive GitLab mirror token rotation with enforced headroom »)
Définition du fini