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

52 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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