[EF-11] Le tableau de bord ne se rafraîchit pas : l'écran ment dès qu'on le laisse ouvert #196

Closed
opened 2026-09-08 11:42:41 +00:00 by lenaic · 0 comments
Owner

Exigence couverte

EF-11, ENF-04

Épreuve servie

EC01 — Architecture

Charge estimée

0,5 j.h

Ce qu'on veut obtenir

Le tableau de bord ne se rafraîchit jamais tout seul. Les vues chargent sur onMounted et il n'existe aucun setInterval dans services/dashboard/src : les valeurs affichées sont celles de l'instant où la page a été ouverte, et le seul moyen de les mettre à jour est de recharger.

C'était sans conséquence tant que l'écran servait un jeu figé : rien ne bougeait derrière. Depuis le #179, tout bouge. La relève écrit à la minute, la zone argent à l'heure, la prévision à la minute 35, les recommandations à la 45. Un écran laissé ouvert vingt minutes pendant une démonstration montre donc un état périmé sans le dire, ce qui est exactement le défaut que le #179 vient de corriger sur la source.

Le pire cas n'est pas la valeur périmée, c'est l'heure. derniere_releve affiche maintenant l'heure réelle : sur un écran ouvert depuis une heure, elle aura une heure de retard et donnera à croire que la collecte s'est arrêtée.

Critères d'acceptation

  • Les vues Parc, Site et Qualité se rafraîchissent seules, sans intervention.
  • La période est écrite une seule fois et se lit : elle n'est pas dispersée dans trois vues.
  • Un rafraîchissement en échec ne vide pas l'écran : la dernière valeur connue reste, et l'écran dit qu'elle est ancienne.
  • L'onglet en arrière-plan ne rafraîchit pas : document.visibilityState gouverne, sans quoi sept sites interrogent l'API toute la nuit.
  • L'heure du dernier rafraîchissement réussi est visible sur l'écran.

Comment on le vérifie

Tests services/dashboard/tests/unit/
Commande npm run test:unit
Preuve un écran laissé ouvert dix minutes montre la relève de la minute écoulée, sans rechargement

Hors périmètre

Le temps réel poussé par le serveur, websocket ou SSE. Une période de rafraîchissement suffit à ce que l'écran dise vrai, et un canal permanent demanderait de tenir un état côté API que personne n'a demandé.

Le rafraîchissement des graphiques d'historique, qui portent sur des journées closes.

### Exigence couverte EF-11, ENF-04 ### Épreuve servie EC01 — Architecture ### Charge estimée 0,5 j.h ### Ce qu'on veut obtenir **Le tableau de bord ne se rafraîchit jamais tout seul.** Les vues chargent sur `onMounted` et il n'existe aucun `setInterval` dans `services/dashboard/src` : les valeurs affichées sont celles de l'instant où la page a été ouverte, et le seul moyen de les mettre à jour est de recharger. C'était sans conséquence tant que l'écran servait un jeu figé : rien ne bougeait derrière. Depuis le #179, tout bouge. La relève écrit à la minute, la zone argent à l'heure, la prévision à la minute 35, les recommandations à la 45. Un écran laissé ouvert vingt minutes pendant une démonstration montre donc un état périmé sans le dire, ce qui est exactement le défaut que le #179 vient de corriger sur la source. Le pire cas n'est pas la valeur périmée, c'est **l'heure**. `derniere_releve` affiche maintenant l'heure réelle : sur un écran ouvert depuis une heure, elle aura une heure de retard et donnera à croire que la collecte s'est arrêtée. ### Critères d'acceptation - [ ] Les vues Parc, Site et Qualité se rafraîchissent seules, sans intervention. - [ ] La période est écrite une seule fois et se lit : elle n'est pas dispersée dans trois vues. - [ ] Un rafraîchissement en échec ne vide pas l'écran : la dernière valeur connue reste, et l'écran dit qu'elle est ancienne. - [ ] L'onglet en arrière-plan ne rafraîchit pas : `document.visibilityState` gouverne, sans quoi sept sites interrogent l'API toute la nuit. - [ ] L'heure du dernier rafraîchissement réussi est visible sur l'écran. ### Comment on le vérifie Tests services/dashboard/tests/unit/ Commande npm run test:unit Preuve un écran laissé ouvert dix minutes montre la relève de la minute écoulée, sans rechargement ### Hors périmètre Le temps réel poussé par le serveur, websocket ou SSE. Une période de rafraîchissement suffit à ce que l'écran dise vrai, et un canal permanent demanderait de tenir un état côté API que personne n'a demandé. Le rafraîchissement des graphiques d'historique, qui portent sur des journées closes.
lenaic self-assigned this 2026-09-08 11:42:41 +00:00
Sign in to join this conversation.
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
g2/enervision#196
No description provided.