Banc daté de main : tests/stockage.test.js ne dépend plus du jour où il tourne (t_d6daf667) #1688

Merged
hermes-fusion merged 1 commit from hermes/banc-stockage-date into main 2026-10-15 01:10:03 +02:00
Collaborator

La panne, mesurée sur main (e7886778) le 15/10 à 00 h 12 — npx vitest run : 1 failed | 195 passed (196).

FAIL  tests/stockage.test.js > la jauge de stockage… > rendu : la barre et la projection s'affichent…
      attendu : '4 volumes suivis, 2 en alerte, relevé à '
      reçu    : '4 volumes suivis, 2 en alerte, relevé hier à 22 h 44'

La cause : tests/stockage.test.js rend l'onglet Processus à l'heure courante (Date.now()), alors que la phrase attendue vient d'un relevé du 14/10 à 22 h 44. Passé minuit, moment() (src/lib/format.js) écrit « hier à 22 h 44 » et le banc rougit sans qu'aucun commit ait bougé. La CI du 14/10 était verte parce qu'elle a tourné avant minuit ; #1635 n'y est pour rien (ses commits propres ne touchent ni Processus.svelte, ni lib/stockage.js, ni ce banc).

Le remède, celui déjà posé dans le dépôt (tests/rendu.test.js, STUD-1155, même panne mesurée le 14/10) : l'horloge du banc est figée à l'heure du relevé témoin — vi.useFakeTimers({ toFake: ['Date'] }) + vi.setSystemTime(maintenant) + afterAll(() => vi.useRealTimers()). Aucun fichier de l'interface n'est touché (src/ intact : le banc suit l'onglet, il ne le change pas).

Deux ajouts dans le même banc :

  • l'assertion du rendu passe du préfixe « relevé à » à la phrase entière « relevé à 22 h 44 » ;
  • un essai de reproduction, « la phrase datée du relevé tient à l'horloge du banc, pas au jour où il tourne », garde le correctif : sans l'horloge figée il rougit (2 failed | 6 passed sur ce banc seul), attendu 2026-10-14T20:45:00.000Z, reçu l'heure de la machine.

Mesures

  • npx vitest run (branche, tête df75b2be) : 197 passed | 26 files passed, code 0.
  • même banc sans le correctif (fichier rejoué avec l'horloge figée retirée) : 2 failed | 6 passed, code 1.
  • npm run build : code 0, dist/index.html 1 804 o, dist/app.js 145 229 o.
  • python3 _tableau/test_apercu_front.py code 0 ; python3 _tableau/test_charte_ui.py code 0 (257 classes au socle, 0 locale).

Carte : t_d6daf667 (suite de t_64c784dc). Aucune capture : rien de l'interface ne change, seul le banc est touché.

**La panne, mesurée sur `main` (e7886778) le 15/10 à 00 h 12** — `npx vitest run` : `1 failed | 195 passed (196)`. ``` FAIL tests/stockage.test.js > la jauge de stockage… > rendu : la barre et la projection s'affichent… attendu : '4 volumes suivis, 2 en alerte, relevé à ' reçu : '4 volumes suivis, 2 en alerte, relevé hier à 22 h 44' ``` **La cause** : `tests/stockage.test.js` rend l'onglet Processus à l'heure courante (`Date.now()`), alors que la phrase attendue vient d'un relevé du 14/10 à 22 h 44. Passé minuit, `moment()` (`src/lib/format.js`) écrit « hier à 22 h 44 » et le banc rougit **sans qu'aucun commit ait bougé**. La CI du 14/10 était verte parce qu'elle a tourné avant minuit ; `#1635` n'y est pour rien (ses commits propres ne touchent ni `Processus.svelte`, ni `lib/stockage.js`, ni ce banc). **Le remède, celui déjà posé dans le dépôt** (`tests/rendu.test.js`, STUD-1155, même panne mesurée le 14/10) : l'horloge du banc est figée à l'heure du relevé témoin — `vi.useFakeTimers({ toFake: ['Date'] })` + `vi.setSystemTime(maintenant)` + `afterAll(() => vi.useRealTimers())`. Aucun fichier de l'interface n'est touché (`src/` intact : le banc suit l'onglet, il ne le change pas). Deux ajouts dans le même banc : - l'assertion du rendu passe du préfixe « relevé à » à la phrase entière « relevé à 22 h 44 » ; - un essai de reproduction, *« la phrase datée du relevé tient à l'horloge du banc, pas au jour où il tourne »*, garde le correctif : sans l'horloge figée il rougit (`2 failed | 6 passed` sur ce banc seul), attendu `2026-10-14T20:45:00.000Z`, reçu l'heure de la machine. **Mesures** - `npx vitest run` (branche, tête df75b2be) : **197 passed | 26 files passed**, code 0. - même banc sans le correctif (fichier rejoué avec l'horloge figée retirée) : **2 failed | 6 passed**, code 1. - `npm run build` : code 0, `dist/index.html` 1 804 o, `dist/app.js` 145 229 o. - `python3 _tableau/test_apercu_front.py` code 0 ; `python3 _tableau/test_charte_ui.py` code 0 (257 classes au socle, 0 locale). Carte : `t_d6daf667` (suite de `t_64c784dc`). Aucune capture : rien de l'interface ne change, seul le banc est touché.
Banc stockage : horloge figée à l'heure du relevé, le jour où le banc tourne ne le fait plus rougir
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 36s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 16s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 34s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 21s
df75b2be2e
Cause, mesurée sur main (e7886778) le 15/10 à 00 h 12 : tests/stockage.test.js rendait l'onglet
Processus à l'heure courante (Date.now()) alors que la phrase attendue vient d'un relevé du 14/10 à
22 h 44. Passé minuit, moment() écrit « hier à 22 h 44 » et le banc rougit sans qu'aucun commit ait
bougé : 1 failed | 195 passed, la CI du 14/10 étant passée avant minuit.

Remède : l'horloge du banc est figée à l'heure du relevé témoin (vi.useFakeTimers({ toFake: ['Date'] })
puis vi.setSystemTime), le remède déjà posé dans tests/rendu.test.js (STUD-1155). L'assertion du rendu
passe du préfixe « relevé à » à la phrase entière « relevé à 22 h 44 », et un essai de reproduction la
garde : il rougit sans l'horloge figée (mesure : 2 failed | 6 passed sur le banc sans le correctif).
Author
Collaborator

Preuve de la carte t_d6daf667 — banc daté de main, corrigé sur la branche hermes/banc-stockage-date (tête df75b2be).

1. Le rouge de main, mesuré avant le correctif (arbre de travail sur main e7886778, le 15/10 à 00 h 23) :

$ npx vitest run
 Test Files  1 failed | 25 passed (26)
      Tests  1 failed | 195 passed (196)
FAIL tests/stockage.test.js > la jauge de stockage… > rendu : la barre et la projection s'affichent…
     attendu : '4 volumes suivis, 2 en alerte, relevé à '
     reçu    : '4 volumes suivis, 2 en alerte, relevé hier à 22 h 44'

2. Le vert après le correctif, sur la branche :

$ npx vitest run
 Test Files  26 passed (26)
      Tests  197 passed (197)

3. Le test neuf, rouge sans le correctif (même banc rejoué avec l'horloge figée retirée, seul ce fichier) :

$ npx vitest run tests/avant-sans-correctif.test.js
 Test Files  1 failed (1)
      Tests  2 failed | 6 passed (8)
 × reproduction : la phrase datée du relevé tient à l'horloge du banc, pas au jour où il tourne
     Expected: "2026-10-14T20:45:00.000Z"
     Received: "2026-10-14T22:24:28.362Z"

4. La construction et les bancs voisins

$ npm run build                      → code 0, dist/index.html 1 804 o, dist/app.js 145 229 o
$ python3 _tableau/test_apercu_front.py   → code 0 : l'aperçu sert l'Accueil, les dépenses et des signalements vides
$ python3 _tableau/test_charte_ui.py      → code 0 : charte tenue (257 classes au socle, 0 locale à résorber, aucune couleur en dur)

5. La CI de la forge sur df75b2be : 4/4 verte

Rust (_tableau/rust) (push)               success  36 s
Rust (_tableau/rust) (pull_request)       success  34 s
Front Svelte (_tableau/front) (push)      success  16 s
Front Svelte (_tableau/front) (pull_request) success  21 s

Ce qui est touché : un seul fichier, _tableau/front/tests/stockage.test.js (20 ajouts, 2 retraits). Aucun fichier de src/ — l'onglet Processus n'est pas modifié, le banc suit l'onglet. Aucune capture : rien de l'interface ne change.

Ce que je n'ai pas mesuré : la page servie par le 132 (rien ne déploie ici), et le banc dans le Chromium des agents (homogeneite.py demande un navigateur ; non lancé, il ne touche pas ce fichier).

**Preuve de la carte `t_d6daf667`** — banc daté de `main`, corrigé sur la branche `hermes/banc-stockage-date` (tête `df75b2be`). **1. Le rouge de `main`, mesuré avant le correctif** (arbre de travail sur `main` `e7886778`, le 15/10 à 00 h 23) : ``` $ npx vitest run Test Files 1 failed | 25 passed (26) Tests 1 failed | 195 passed (196) FAIL tests/stockage.test.js > la jauge de stockage… > rendu : la barre et la projection s'affichent… attendu : '4 volumes suivis, 2 en alerte, relevé à ' reçu : '4 volumes suivis, 2 en alerte, relevé hier à 22 h 44' ``` **2. Le vert après le correctif, sur la branche** : ``` $ npx vitest run Test Files 26 passed (26) Tests 197 passed (197) ``` **3. Le test neuf, rouge sans le correctif** (même banc rejoué avec l'horloge figée retirée, seul ce fichier) : ``` $ npx vitest run tests/avant-sans-correctif.test.js Test Files 1 failed (1) Tests 2 failed | 6 passed (8) × reproduction : la phrase datée du relevé tient à l'horloge du banc, pas au jour où il tourne Expected: "2026-10-14T20:45:00.000Z" Received: "2026-10-14T22:24:28.362Z" ``` **4. La construction et les bancs voisins** ``` $ npm run build → code 0, dist/index.html 1 804 o, dist/app.js 145 229 o $ python3 _tableau/test_apercu_front.py → code 0 : l'aperçu sert l'Accueil, les dépenses et des signalements vides $ python3 _tableau/test_charte_ui.py → code 0 : charte tenue (257 classes au socle, 0 locale à résorber, aucune couleur en dur) ``` **5. La CI de la forge sur `df75b2be` : 4/4 verte** ``` Rust (_tableau/rust) (push) success 36 s Rust (_tableau/rust) (pull_request) success 34 s Front Svelte (_tableau/front) (push) success 16 s Front Svelte (_tableau/front) (pull_request) success 21 s ``` **Ce qui est touché** : un seul fichier, `_tableau/front/tests/stockage.test.js` (20 ajouts, 2 retraits). Aucun fichier de `src/` — l'onglet Processus n'est pas modifié, le banc suit l'onglet. Aucune capture : rien de l'interface ne change. **Ce que je n'ai pas mesuré** : la page servie par le 132 (rien ne déploie ici), et le banc dans le Chromium des agents (`homogeneite.py` demande un navigateur ; non lancé, il ne touche pas ce fichier).
hermes-fusion deleted branch hermes/banc-stockage-date 2026-10-15 01:10:03 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette relu), sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette `relu`), sans conflit.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 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/studio!1688
No description provided.