--- id: "05a70dc5-fd28-4c58-8ba1-be6058ae3cfc" number: 79 title: "Test flaky : PermissionsPanel « saves project defaults » échoue par intermittence" status: "open" priority: "low" sprint: null links: [] agentRefs: [] createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"} updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"} createdAt: 1784287450082 updatedAt: 1784287450082 version: 1 --- ## Constat Relevé par DevFrontend pendant #77, **sans rapport avec ce ticket**. `frontend/src/features/permissions/permissions.test.tsx` → `PermissionsPanel > saves project defaults` échoue par intermittence sur une exécution complète de la suite : ``` FAIL src/features/permissions/permissions.test.tsx > PermissionsPanel > saves project defaults Test Files 1 failed | 90 passed (91) Tests 1 failed | 847 passed (848) ``` ## Pourquoi ce n'est pas une régression de #77 Vérifié au moment du constat : - `git diff HEAD -- src/features/permissions` est **vide** — le lot #77 n'a pas touché cette surface. - Le test **passe seul**. - Le passage complet suivant est **vert** (848/848), sans modification entre les deux. - Durée du test : ~1371 ms — sensible au timing. ## Pourquoi ça mérite un ticket quand même Un test qui passe deux fois sur trois est pire qu'un test rouge : il apprend à l'équipe à relancer plutôt qu'à lire. Il finira par mordre en CI, où l'on ne relance pas toujours, et il érode la confiance dans une suite dont ce chantier a montré qu'elle est le principal garde-fou. ## Attendu Identifier la source du non-déterminisme (timers, attente implicite, état partagé entre tests) et rendre le test déterministe. **Ne pas le neutraliser ni augmenter un timeout pour le faire taire** : si le comportement testé est réellement dépendant du timing, c'est le comportement qu'il faut regarder. ## Périmètre Frontend, tests.