mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-27 23:08:16 +02:00
capitalisation: intégration 28 entrées knowledge + 2 CLAUDE.md RL799_V2 (triage branche mcp_v1)
28 nouvelles sections intégrées dans 12 fichiers knowledge (backend risques/patterns, frontend risques/patterns, workflow risques). Couvre rate limiting, RGPD, CSP Next.js, refresh token TOCTOU, catch-all Prisma, distinction 401/403, tests E2E Playwright, etc. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -90,3 +90,45 @@ Si un test vérifie un *comportement* (ex: "le menu se ferme après clic"), il d
|
||||
|
||||
- Validé le : 03-04-2026
|
||||
- Contexte technique : Vue 3 / node:test — RL799_V2 story 6A.8
|
||||
|
||||
---
|
||||
|
||||
<a id="pattern-ordre-dom-comparedocumentposition"></a>
|
||||
## Pattern : Vérifier l'ordre DOM avec `compareDocumentPosition`, pas `boundingBox`
|
||||
|
||||
### Synthèse
|
||||
|
||||
- **Objectif** : valider l'ordre réel des éléments dans le DOM, indépendamment du rendu CSS.
|
||||
- **Contexte** : tests E2E Playwright qui doivent vérifier l'ordre d'affichage de sections ou d'éléments.
|
||||
- **Quand l'utiliser** : toute assertion d'ordre dans un test E2E.
|
||||
- **Quand l'éviter** : si on veut explicitement tester la position visuelle CSS (rare).
|
||||
|
||||
### Analyse
|
||||
|
||||
- **Avantages** :
|
||||
- vérifie l'ordre DOM réel, insensible aux propriétés CSS (`flex-order`, `position`, `transform`)
|
||||
- pas de `null` en retour (contrairement à `boundingBox()` hors viewport)
|
||||
- déterministe
|
||||
- **Limites / vigilance** :
|
||||
- ne vérifie pas la position visuelle — si le test doit valider un rendu CSS spécifique, `boundingBox` reste pertinent
|
||||
|
||||
### Validation
|
||||
|
||||
- Validé le : 08-04-2026
|
||||
- Contexte technique : Playwright / E2E — RL799_V2 story 17-5
|
||||
|
||||
### Implémentation
|
||||
|
||||
```ts
|
||||
const aBeforeB = await page.evaluate(() => {
|
||||
const a = document.querySelector('[data-testid="section-a"]');
|
||||
const b = document.querySelector('[data-testid="section-b"]');
|
||||
if (!a || !b) return false;
|
||||
return (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) !== 0;
|
||||
});
|
||||
expect(aBeforeB).toBe(true);
|
||||
```
|
||||
|
||||
### Risque associé
|
||||
|
||||
`boundingBox().y` vérifie la position visuelle rendue par CSS, pas l'ordre dans le DOM. De plus `boundingBox()` retourne `null` pour les éléments hors viewport → crash non déterministe.
|
||||
|
||||
Reference in New Issue
Block a user