Enregistre l'état du registre de tickets : #77 entre en QA, #78 ouvre la dette UX de langue de l'écran Settings et #79 le test flaky relevé en cours de route. État runtime uniquement : aucun code de feature n'est touché. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.9 KiB
Markdown
47 lines
1.9 KiB
Markdown
---
|
|
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. |