Skip to content

refactor(server-nestjs): extraire les gates des specs e2e vers des fichiers utils par spec - #2698

Draft
shikanime wants to merge 1 commit into
mainfrom
refactor/e2e-spec-gates-utils
Draft

refactor(server-nestjs): extraire les gates des specs e2e vers des fichiers utils par spec#2698
shikanime wants to merge 1 commit into
mainfrom
refactor/e2e-spec-gates-utils

Conversation

@shikanime

Copy link
Copy Markdown
Member

Issues liées

#2688 (stackée dessus — à rebaser sur main après sa fusion)


Quel est le comportement actuel ?

Chaque spec e2e de apps/server-nestjs/test/ duplique son propre bloc d'activation : la constante canRun<X>E2E et l'alias describeWith<X> = describe.runIf(...).
La constante partagée ALL_GRAFANA_SUBGROUPS vit dans la spec observability.

Quel est le nouveau comportement ?

Chaque spec importe son gate depuis un fichier voisin <name>.utils.ts qui exporte canRun<X>E2E et describeWith<X> (et, pour observability, les constantes de sous-groupes Grafana).
Les globs vitest (src/**/*.spec.ts, test/**/*.e2e-spec.ts) ne capturent pas les fichiers .utils.ts : aucune exécution en double, aucun changement de runtime.
Aucune modification du code de production ; 17 specs allégées, 17 fichiers utils créés.

Cette PR introduit-elle un breaking change ?

Non.

Autres informations

@shikanime
shikanime marked this pull request as ready for review September 8, 2026 13:32
@shikanime
shikanime requested a review from a team as a code owner September 8, 2026 13:32
@shikanime
shikanime marked this pull request as draft September 8, 2026 13:35
@shikanime
shikanime force-pushed the refactor/e2e-spec-gates-utils branch from 3ffed21 to f39a964 Compare September 8, 2026 13:39
@shikanime
shikanime marked this pull request as ready for review September 8, 2026 13:40
@github-actions github-actions Bot added the built label Sep 8, 2026
Base automatically changed from fix/observability-dual-bucket to main September 8, 2026 16:14
Each e2e spec keeps only its describe body; the E2E gate, its
describe.runIf alias (and, for observability, the shared Grafana
subgroup constants) move to a sibling <name>.utils.ts. The vitest
include globs only match *.e2e-spec.ts, so utils files stay out of
both unit and gated runs.

Stacked on fix/observability-dual-bucket (PR #2688).

Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr>
Change-Id: I602e5529ac2cea360ce6025d4f06e0b9efe359e9
@shikanime
shikanime force-pushed the refactor/e2e-spec-gates-utils branch from f39a964 to a451361 Compare September 9, 2026 08:48
@cloud-pi-native-sonarqube

Copy link
Copy Markdown

@shikanime
shikanime marked this pull request as draft September 9, 2026 08:59
@shikanime
shikanime force-pushed the refactor/e2e-spec-gates-utils branch 2 times, most recently from 975d543 to a451361 Compare September 9, 2026 13:29

@shikanime shikanime left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict : Commentaire

Refactoring mécanique propre : chaque spec e2e exporte son gate dans un utils dédié et plus rien ne fuite entre specs. Deux remarques de style seulement — la CI rouge actuelle vient du test instable gitlab.service.spec.ts côté tronc, corrigé par la PR #2707.


const canRunArgoCDE2E
= Boolean(process.env.E2E)
import { describeWithArgoCD } from './argocd.utils'

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[🟡 Nit] Ordre des imports : regrouper ./argocd.utils avec les imports relatifs (après ./constants) pour rester dans le tri eslint.

@@ -0,0 +1,5 @@
import { describe } from 'vitest'

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚪ Suggestion] Seize fichiers jumeaux de cinq lignes (canRunX + describeWithX) : un util partagé describeWithE2E éviterait la duplication — sauf si un gate par service à court terme est l'objectif ; dans ce cas un commentaire d'intention suffit.


export const describeWithObservability = describe.runIf(canRunObservabilityE2E)

export const ALL_GRAFANA_SUBGROUPS = [

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[✨ Éloge] ALL_GRAFANA_SUBGROUPS déplacé dans le même mouvement : la constante partagée vit désormais là où est le gate, plus de dépendance à la spec observability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant