ihm_client/docs/TESTING.md
Your Name 8a94c57c2a
Some checks failed
CI/CD Pipeline / test (push) Failing after 8s
CI/CD Pipeline / security (push) Has been skipped
CI/CD Pipeline / integration-test (push) Has been skipped
e2e: config Playwright + test smoke; CI: installer et exécuter E2E; docs TESTING mise à jour
2025-08-26 07:03:08 +02:00

1.6 KiB
Raw Permalink 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).
  • 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 puis npm run test:e2e

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.