Garde des clés i18n : une clé présente dans une seule langue fait échouer npm test #453
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#453
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs #446
Aucun test ne compare les arbres de clés de
src/i18n/locales/fr.jsonetsrc/i18n/locales/en.json. Les deux ont 1412 feuilles identiques au 2026-10-16, sans garde : une clé ajoutée dans une seule langue passe la CI et s'affiche brute dans l'autre langue. Ce point est sorti de #446 et placé en tête de la pilelot-v018, pour que les maillons suivants (#449, #372, #429, #393, #437, #384, #446) soient couverts dès leur PR.Garde existantes, qui ne couvrent pas ce cas :
DocsContent.locales.test.ts(seulementdocs.*, longueurs et ids),onboardingPath.locales.test.ts(interpolations de trois phrases),entitlements.test.ts:134-153(clésupsell.features),src/__integration__/i18n-mock-guard.test.ts(fauxt).Fichiers concernés
src/i18n/locales.keys.test.ts(nouveau)src/i18n/locales/fr.json,src/i18n/locales/en.json(seulement si la garde révèle un écart sur la base du maillon)Travail à faire
DocsContent.locales.test.ts:13-14), aplatit les feuilles en chemins pointés (les indices de tableau comptent :docs.dashboard.features.6), puis compare les deux ensembles triés. Le message d'échec liste les clés manquantes dans chaque langue, séparément.Critères d'acceptation
npm testvert sur le tip.import.config.sourceNameHintdeen.json→ la garde rougit et nomme cette clé comme manquante en anglais.zz.only.frdansfr.jsonseulement → rouge, clé nommée comme manquante en anglais.docs.*par une chaîne dans une langue → rouge.Décisions prises en planification
/plan-run) : la garde sort de #446 pour passer en tête de pile, afin qu'un oubli de clé dans un maillon soit vu dans sa propre PR et non à la fin.Spec source
spec-plan-lot-v018.md
Note du 2026-10-18 :
REVIEW.mdest mergéReprise du commentaire 24477, écrit avant le merge de
REVIEW.md(PR #460,main24da72b). Dans « Pièges de revue », l'entrée « Fauxt» écrit : « Jusqu'à #453, aucune garde ne détecte une clé présente dans une seule langue : comparerfr.jsoneten.json. » La PR de cette issue remplace cette phrase par la garde qu'elle ajoute, avec le nom du test (src/i18n/locales.keys.test.ts).REVIEW.mds'ajoute aux fichiers concernés.Note pour la PR de cette issue.
REVIEW.md(PR #460, pas encore mergée) porte, dans « Pièges de revue », l'entrée « Fauxt» : « Jusqu'à #453, aucune garde ne détecte une clé présente dans une seule langue : comparerfr.jsoneten.json. »Si #460 est mergée avant, la PR de #453 remplace cette phrase par la garde qu'elle ajoute, avec le nom du test.