1.4 KiB
1.4 KiB
Tests - ihm_client
Cette page décrit la stratégie de test, l’outillage et les conventions. Aucun exemple exécutable n’est inclus.
Périmètre et objectifs
- Couverture des utilitaires (hex/binaire, DOM, adresses → emojis).
- Couverture des services isolables (
TokenService
). - Non-régression des conversions et des invariants d’API.
Outils
- Test runner: Jest 29 (environnement
jsdom
). - TypeScript:
ts-jest
(transform TS). - Setup global:
tests/setup.ts
(polyfills Web, mocks réseau et stockage).
Organisation
tests/unit/
: tests unitaires ciblés, rapides.tests/integration/
: réservé aux interactions WASM/services (à compléter si besoin).
Exécution
- Lancer tous les tests:
npm run test
- Couverture:
npm run test:coverage
- Veille interactive:
npm run test:watch
Conventions
- Un test = un invariant métier/technique.
- Mocks minimaux, privilégier l’isolation des dépendances (ex.
jose
mocké). - Aucun exemple de code applicatif dans la documentation.
Polyfills et mocks de test
TextEncoder
/TextDecoder
viautil
.crypto.subtle.digest
faux pour hashing déterministe en test d’emojis.fetch
,WebSocket
,localStorage
,sessionStorage
mockés.
Critères d’acceptation
- 100% vert sur la suite unitaire.
- Build TypeScript OK (
npm run build:dist
) avant commit.
Rapports
- Rapport couverture:
coverage/
(text, lcov, html). - Logs de tests: sortie Jest standard.