Banc du Top : il appelle bien sa route, pas un symbole manquant #1793

Merged
foXaCe merged 1 commit from hermes/top-route-banc into main 2026-10-17 05:55:18 +02:00
Collaborator

Ce que ça apporte

Un seul banc, tests/top-route.test.js : le Top vidéos, monté avec props: { api: '/api/top' } seul, appelle bien sa route et ne dit pas « lire is not defined ».

Pourquoi

Cause mesurée dans Chrome le 2026-10-16 (page /processus/?top, build fraîche) :

Onglet Top vidéos injoignable (lire is not defined). Recharger la page.

Top.svelte appelait lire(api) sans importer lire : ReferenceError au montage, et l'onglet ne posait jamais [data-top-pret] — homogeneite-releve.mjs attendait ce marqueur en vain (« la page n'a rien monté en 10 s »).

Le remède est déjà dans main (commits 18e9b69086, 44fe20ecaa, 5e1b1a4456, feb4ca4620, d'autres cartes) : lire est importé, le montage passe props: { api }, la miniature est celle de la base et les liens gardent la pièce LIEN. Ce qui manquait, c'est le banc qui le garde : top.test.js ne voit pas la panne, parce que le rendu serveur (svelte/server) n'exécute pas {@attach veiller}, qui appelle la route au montage.

Preuve

mesure résultat
npx vitest run tests/top-route.test.js 1 test sur 1
npx vitest run (jeu complet) 528 tests sur 528 (60 fichiers)
banc sans lire dans l'import échoue (mesuré : fetch jamais appelé avec /api/top)
npm run build dist/index.html, 1 139 477 octets, 21 JS de plus de 5 Ko

À propos de la PR #1792 (fermée)

La branche hermes/top-videos-regressions-ci portait le remède complet, mais main l'a reçu entre-temps par les commits ci-dessus : elle était en conflit et en doublon, d'où sa fermeture. Cette PR ne garde que ce qui manquait.

Proposition, pas imposée

_tableau/front/src/lib/composants/Miniature.svelte n'a plus aucun importateur dans le front (git grep "composants/Miniature" httpforge/main -- _tableau/front/ ne retourne rien) ; c'est la pièce d'avant 4b3ed1b209, celle dont l'import avait produit la régression. main l'a gardée. Je ne la retire pas sans l'accord de l'opérateur.

## Ce que ça apporte Un seul banc, `tests/top-route.test.js` : le Top vidéos, monté avec `props: { api: '/api/top' }` seul, **appelle bien sa route** et ne dit pas « lire is not defined ». ## Pourquoi **Cause mesurée dans Chrome le 2026-10-16** (page `/processus/?top`, build fraîche) : Onglet Top vidéos injoignable (lire is not defined). Recharger la page. `Top.svelte` appelait `lire(api)` sans importer `lire` : `ReferenceError` au montage, et l'onglet ne posait jamais `[data-top-pret]` — `homogeneite-releve.mjs` attendait ce marqueur en vain (« la page n'a rien monté en 10 s »). Le remède est **déjà dans `main`** (commits `18e9b69086`, `44fe20ecaa`, `5e1b1a4456`, `feb4ca4620`, d'autres cartes) : `lire` est importé, le montage passe `props: { api }`, la miniature est celle de la base et les liens gardent la pièce `LIEN`. **Ce qui manquait, c'est le banc qui le garde** : `top.test.js` ne voit pas la panne, parce que le rendu serveur (`svelte/server`) n'exécute pas `{@attach veiller}`, qui appelle la route au montage. ## Preuve | mesure | résultat | |---|---| | `npx vitest run tests/top-route.test.js` | **1 test sur 1** | | `npx vitest run` (jeu complet) | **528 tests sur 528** (60 fichiers) | | banc sans `lire` dans l'import | **échoue** (mesuré : `fetch` jamais appelé avec `/api/top`) | | `npm run build` | `dist/index.html`, 1 139 477 octets, 21 JS de plus de 5 Ko | ## À propos de la PR #1792 (fermée) La branche `hermes/top-videos-regressions-ci` portait le remède complet, mais `main` l'a reçu entre-temps par les commits ci-dessus : elle était en conflit et en doublon, d'où sa fermeture. Cette PR ne garde que ce qui manquait. ## Proposition, pas imposée `_tableau/front/src/lib/composants/Miniature.svelte` n'a **plus aucun importateur** dans le front (`git grep "composants/Miniature" httpforge/main -- _tableau/front/` ne retourne rien) ; c'est la pièce d'avant `4b3ed1b209`, celle dont l'import avait produit la régression. `main` l'a gardée. Je ne la retire pas sans l'accord de l'opérateur.
Banc du Top : il appelle bien sa route, pas un symbole manquant
All checks were successful
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 2m3s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 7m36s
09e40aae9e
Cause, mesurée dans Chrome le 2026-10-16 : `Top.svelte` appelait `lire(api)` sans importer `lire` — au
montage, `ReferenceError`, l'onglet rendait « Onglet Top vidéos injoignable (lire is not defined) » et ne
posait jamais `[data-top-pret]`. Le remède est déjà dans `main` (18e9b69086) ; ce qui manquait, c'est le
banc qui le garde : `top.test.js` ne le voit pas, parce que le rendu serveur n'exécute pas
`{@attach veiller}`, qui appelle la route.

Le banc monte l'onglet en jsdom avec `props: { api: '/api/top' }` seul et vérifie que la route est
appelée et que le rendu ne dit pas « lire is not defined ». Mesuré : il échoue quand on retire `lire`
de l'import, et passe avec.

Preuve : 528 tests sur 528 ; `npm run build` (dist/index.html, 1 126 000 octets, 21 JS de plus de 5 Ko).
foXaCe merged commit 874f12d86c into main 2026-10-17 05:55:18 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
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/studio!1793
No description provided.