ihm_client/docs/TESTING.md

1.4 KiB
Raw Blame History

Tests - ihm_client

Cette page décrit la stratégie de test, loutillage et les conventions. Aucun exemple exécutable nest 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 dAPI.

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 lisolation des dépendances (ex. jose mocké).
  • Aucun exemple de code applicatif dans la documentation.

Polyfills et mocks de test

  • TextEncoder/TextDecoder via util.
  • crypto.subtle.digest faux pour hashing déterministe en test demojis.
  • fetch, WebSocket, localStorage, sessionStorage mockés.

Critères dacceptation

  • 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.