1.6 KiB
1.6 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). - E2E: Playwright (Chromium headless) avec
playwright.config.ts
.
Organisation
tests/unit/
: tests unitaires ciblés, rapides.tests/integration/
: réservé aux interactions WASM/services (à compléter si besoin).tests/e2e/
: tests de bout en bout (smoke tests).
Exécution
- Lancer tous les tests:
npm run test
- Couverture:
npm run test:coverage
- Veille interactive:
npm run test:watch
- E2E:
npm run e2e:install
puisnpm run test:e2e
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.