test(frontend) : des bancs pour la logique des icônes, et un seuil de couverture #40

Merged
hermes-fusion merged 2 commits from test/coverage into main 2026-10-17 20:25:02 +02:00
Owner

L'écart

Le front de pve-control n'avait ni tests ni couverture : package.json ne proposait que dev, build, preview et check. Or src/lib/icons.ts porte quatre fonctions pures dont dépend chaque carte du tableau — l'icône du conteneur, l'adresse de son tableau de bord, la teinte de repli et ses initiales — y compris dans le cas où l'icône manque.

Le correctif

  • Vitest (+ @vitest/coverage-v8), dans un vitest.config.ts dédié ;
  • seuil de 80 % (lignes, branches, fonctions, instructions) posé sur src/lib, pour qu'une baisse future fasse échouer la commande ;
  • neuf bancs sur les tables réelles, sans doublure : logo connu insensible à la casse, nom inconnu → null, adresse propre au conteneur, teinte stable et toujours dans la palette, initiales d'un nom vide.

Validation locale

vérification résultat
npm test 9 tests, 0 échec
npm run test:couverture 92,85 % instructions · 100 % branches · 100 % fonctions · 91,66 % lignes
npm run check (svelte-check + tsc) 0 erreur, 0 warning

Reste ouvert, hors de cette PR : le dépôt n'a toujours ni ESLint ni Prettier — c'est une carte séparée (fix/svelte-lint-types), le formatage de tout src/ étant un diff à part.

## L'écart Le front de pve-control n'avait **ni tests ni couverture** : `package.json` ne proposait que `dev`, `build`, `preview` et `check`. Or `src/lib/icons.ts` porte quatre fonctions pures dont dépend chaque carte du tableau — l'icône du conteneur, l'adresse de son tableau de bord, la teinte de repli et ses initiales — y compris dans le cas où l'icône manque. ## Le correctif - **Vitest** (+ `@vitest/coverage-v8`), dans un `vitest.config.ts` dédié ; - **seuil de 80 %** (lignes, branches, fonctions, instructions) posé sur `src/lib`, pour qu'une baisse future fasse échouer la commande ; - **neuf bancs** sur les tables réelles, sans doublure : logo connu insensible à la casse, nom inconnu → `null`, adresse propre au conteneur, teinte stable et toujours dans la palette, initiales d'un nom vide. ## Validation locale | vérification | résultat | |---|---| | `npm test` | **9 tests, 0 échec** | | `npm run test:couverture` | **92,85 %** instructions · **100 %** branches · **100 %** fonctions · 91,66 % lignes | | `npm run check` (svelte-check + tsc) | **0 erreur, 0 warning** | Reste ouvert, hors de cette PR : le dépôt n'a toujours **ni ESLint ni Prettier** — c'est une carte séparée (`fix/svelte-lint-types`), le formatage de tout `src/` étant un diff à part.
test(frontend): des bancs pour la logique des icônes, et un seuil de couverture
Some checks failed
CI (backend Rust) / Rust (backend) (pull_request) Failing after 5s
fdd0bab8e2
Le front de pve-control n'avait ni tests ni outil de couverture (`package.json` : dev, build, preview,
check). Les quatre fonctions pures de `src/lib/icons.ts` — l'icône, l'adresse du tableau, la teinte du
monogramme et ses initiales — décident pourtant de ce que chaque carte affiche, y compris quand l'icône
manque.

Vitest est ajouté avec un seuil de 80 % (lignes, branches, fonctions, instructions) sur `src/lib`, et neuf
bancs éprouvent les tables réelles, sans doublure : logo connu insensible à la casse, nom inconnu → `null`,
adresse propre au conteneur, teinte stable et toujours dans la palette, initiales d'un nom vide.

Mesuré : `npm test` 9 tests verts ; `npm run test:couverture` 92,85 % des instructions, 100 % des branches
et des fonctions ; `npm run check` 0 erreur, 0 warning.
relance CI (rustfmt et clippy installes sur l'executant)
All checks were successful
CI (backend Rust) / Rust (backend) (pull_request) Successful in 2m57s
0cf7cfbb87
hermes-fusion deleted branch test/coverage 2026-10-17 20:25:02 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte, sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte, sans conflit.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/pve-control!40
No description provided.