31 lines
1.0 KiB
Markdown
31 lines
1.0 KiB
Markdown
# Contrat des ancres (paragraphes opposables)
|
||
|
||
## Source de vérité du sélecteur
|
||
Le site garantit la citabilité des paragraphes via des IDs injectés sur les balises `<p>`.
|
||
|
||
**Sélecteur contractuel :**
|
||
- `.reading p[id^="p-"]`
|
||
|
||
Tout outillage (scripts, tests, docs) doit utiliser ce sélecteur comme référence.
|
||
|
||
## Ce que le test vérifie
|
||
Le test compare, page par page, la liste des IDs de paragraphes présents dans `dist/` contre une baseline versionnée.
|
||
|
||
- Ajouts d’IDs : généralement OK (nouveaux paragraphes).
|
||
- Suppressions / churn élevé : alerte (risque de casser des citations existantes).
|
||
|
||
## Fichier baseline
|
||
- `tests/anchors-baseline.json`
|
||
|
||
## Commandes
|
||
1) Générer / mettre à jour la baseline (cas intentionnel) :
|
||
- `npm run build`
|
||
- `npm run test:anchors:update`
|
||
|
||
2) Vérifier sans changer la baseline (cas normal) :
|
||
- `npm run build`
|
||
- `npm run test:anchors`
|
||
|
||
## Politique d’échec (pragmatique)
|
||
Le test échoue si le churn d’une page dépasse un seuil (défaut : 20%) sur une page “suffisamment grande”.
|