Deux défauts vus sur appareil après installation, tous deux d'affichage.
1. « mesuré depuis 16:37 » à 06:15, pour un `measuredSince` de la VEILLE. Le
lecteur comprend 16:37 aujourd'hui — une heure qui n'est pas encore arrivée —
et « 2,5 kWh achetés » juste à côté devient incompréhensible avec elle.
Même défaut que l'heure UTC, d'un cran plus haut : là on perdait le fuseau,
ici le jour. `heureLisible` rend « HH:MM » dans la journée du lecteur,
« hier HH:MM » la veille, « le JJ/MM à HH:MM » au-delà — et la comparaison
porte sur le jour civil, pas sur 24 h : à 00:05, un instant de 23:50 est hier
même s'il a quinze minutes.
2. « Autoconsommation · sans production » rendu à la moitié de la taille
d'« Autonomie » à côté. Cause : un FittedBox reçoit des contraintes de
largeur infinies, donc son enfant tient sur une ligne aussi large qu'il veut
et c'est tout le bloc qui rétrécit — `maxLines: 2` n'y sert à rien.
Rallonger le texte d'un suffixe rapetissait donc le NOM de la grandeur, qui
est ce qu'on lit en premier. Le motif passe sur sa propre ligne.
Les tests qui figeaient « HH:MM » dérivent maintenant de `heureLisible`, la
fonction même de l'écran — un attendu recomposé à la main aurait gelé la forme
d'avant, exactement comme les « 03:42 » en dur de vendredi.
Captures : docs/captures/2026-09-08_taux-sans-production.png
docs/captures/2026-09-08_instant-hier.png
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw
33 lines
1.2 KiB
Dart
33 lines
1.2 KiB
Dart
/// **`heureLisible` — une heure nue n'est honnête que dans la journée du lecteur.**
|
|
library;
|
|
|
|
import 'package:etm_powersync_app/services/telemetry_text.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
final n = DateTime(2026, 9, 8, 6, 15);
|
|
|
|
test('aujourd\'hui : l\'heure seule suffit', () {
|
|
expect(heureLisible(DateTime(2026, 9, 8, 4, 33), maintenant: n), '04:33');
|
|
});
|
|
|
|
test('hier : le jour est dit', () {
|
|
expect(heureLisible(DateTime(2026, 9, 7, 16, 37), maintenant: n), 'hier 16:37');
|
|
});
|
|
|
|
test('plus ancien : la date est dite', () {
|
|
expect(heureLisible(DateTime(2026, 9, 4, 9, 5), maintenant: n), 'le 04/09 à 09:05');
|
|
});
|
|
|
|
test('la comparaison porte sur le JOUR, pas sur 24 h', () {
|
|
// À 00:05, un instant de 23:50 a quinze minutes — et c'est quand même hier. Comparer
|
|
// des durées au lieu de dates calendaires l'aurait rendu « aujourd'hui ».
|
|
final minuitPasse = DateTime(2026, 9, 8, 0, 5);
|
|
expect(heureLisible(DateTime(2026, 9, 7, 23, 50), maintenant: minuitPasse),
|
|
'hier 23:50');
|
|
// Et l'inverse : 23 h d'écart mais le même jour civil reste une heure nue.
|
|
expect(heureLisible(DateTime(2026, 9, 8, 0, 1), maintenant: DateTime(2026, 9, 8, 23, 30)),
|
|
'00:01');
|
|
});
|
|
}
|