v0.3.0 : migration des dialogues vers wNim + renommage NimPulse + installeur une-ligne
This commit is contained in:
+10
-10
@@ -1,4 +1,4 @@
|
||||
# Vérification TrayTempo
|
||||
# Vérification NimPulse
|
||||
|
||||
Table de correspondance entre chaque exigence de la spécification, le contrôle
|
||||
concret effectué, et le résultat observé.
|
||||
@@ -11,7 +11,7 @@ concret effectué, et le résultat observé.
|
||||
| 1a | Menu contextuel (Démarrer/Pause/Arrêter, Profils, Paramètres, Statistiques, Quitter) | Construction du menu dans `tray.nim` (`CreatePopupMenu`/`AppendMenu`/`TrackPopupMenu`) | Compile ; affichage non inspecté visuellement |
|
||||
| 1b | Icône dynamique selon l'état (travail/pause courte/pause longue/pause) | `tests/test_tray_integration.nim` : `phaseIcon` retourne un `HICON` non nul pour les 5 phases | **OK** (5 icônes GDI générées) |
|
||||
| 1c | Tooltip temps restant | `updateTrayIcon(NIF_TIP)` appelé dans le test d'intégration | **OK** (NIM_MODIFY sans erreur) |
|
||||
| 2 | Durées configurables + profils + sauvegarde `%APPDATA%\TrayTempo` | `tests/test_timer.nim` (17 tests) + `tests/test_config.nim` (round-trip JSON, accents UTF-8, champs manquants) | 17 + 9 tests **OK** |
|
||||
| 2 | Durées configurables + profils + sauvegarde `%APPDATA%\NimPulse` | `tests/test_timer.nim` (17 tests) + `tests/test_config.nim` (round-trip JSON, accents UTF-8, champs manquants) | 17 + 9 tests **OK** |
|
||||
| 3 | Rappels santé configurables, rotation sans répétition | `tests/test_notifications.nim` (5 tests) | 5 tests **OK** |
|
||||
| 4 | Notifications natives (toast / `NIF_INFO`) + son optionnel | `tests/test_tray_integration.nim` : `showToast` (NIF_INFO) sans erreur + `playSound("SystemAsterisk")` retourne `true` | **OK** (API ; rendu toast et son audible non observés) |
|
||||
| 5 | Statistiques (jour/semaine/total, streak, historique, CSV) | `tests/test_stats.nim` (10 tests) | 10 tests **OK** |
|
||||
@@ -27,7 +27,7 @@ concret effectué, et le résultat observé.
|
||||
| 8 | Fix du bug `cycleCount` (reset sur `stop`) | `tests/test_timer.nim` « stop resets cycleCount » | **OK** |
|
||||
| 9 | Sauter / prolonger une pause | `tests/test_timer.nim` (skipBreak, extendBreak, isBreak) | 4 tests **OK** |
|
||||
| 10 | Internationalisation (fr/en) | `i18n.nim` : deux bundles `Strings`, détection langue système ; `tests/test_config.nim` « English defaults » | **OK** |
|
||||
| 11 | Panneau de réglages | `tests/test_dialogs.nim` : `buildSettingsDialog` crée une fenêtre et ses contrôles | **OK** (fenêtre + contrôles créés) |
|
||||
| 11 | Panneau de réglages (wNim) | `dialogs.nim` (wDialog/wFrame + contrôles wNim) | Compile + lancement réel de l'app |
|
||||
| 12 | Objectif journalier | `stats.nim` `goalReached` ; `tests/test_stats.nim` « goalReached is true only when the goal is exactly met » | **OK** |
|
||||
| 13 | Hotkey et son configurables | champs `hotkeyModifiers`/`hotkeyVk`/`soundName` ; `tests/test_config.nim` round-trip | **OK** |
|
||||
| 14 | Mode portable | `configDir()` ; `tests/test_config.nim` « configDir returns exe dir in portable mode » | **OK** (mode portable → exe dir, sinon APPDATA) |
|
||||
@@ -40,21 +40,21 @@ concret effectué, et le résultat observé.
|
||||
|------------|------------------|------------------|
|
||||
| Nim ≥ 2.0 | Compilé avec Nim 2.2.10 | OK |
|
||||
| winim | `nimble install winim` (3.9.4) | OK |
|
||||
| Binaire unique < 5 Mo | `dir src\traytempo.exe` | ~594 Ko |
|
||||
| Binaire unique < 5 Mo | `dir src\nimpulse.exe` | ~594 Ko |
|
||||
| `nim c -d:release --app:gui` | commande exacte exécutée | compile **SuccessX** |
|
||||
| Modules (`tray/timer/notifications/config/stats/i18n/dialogs/floating/updater`) | `ls src/` | 10 modules présents |
|
||||
| Boucle messages + `SetTimer`/`WM_TIMER` | `GetMessage` loop + `SetTimer`/`WM_TIMER` dans `traytempo.nim` | Compile + timer décrémenté (testé via `tick`) |
|
||||
| Modules (`tray/timer/notifications/config/stats/i18n/dialogs/floating/updater`) | `ls src/` | 10 modules présents (dialogs basé sur wNim) |
|
||||
| Boucle messages + `SetTimer`/`WM_TIMER` | `GetMessage` loop + `SetTimer`/`WM_TIMER` dans `nimpulse.nim` | Compile + timer décrémenté (testé via `tick`) |
|
||||
|
||||
## Livrables
|
||||
|
||||
| Livrable | Contrôle | Résultat |
|
||||
|----------|----------|----------|
|
||||
| Structure + `traytempo.nimble` | fichier présent, `requires winim` | OK |
|
||||
| Structure + `nimpulse.nimble` | fichier présent, `requires winim` | OK |
|
||||
| Code source commenté (tous modules) | en-têtes `##` de module + commentaires | OK |
|
||||
| README + instructions compilation | `README.md` (compile, config, archi, tests, distribution) | OK |
|
||||
| Config exemple + profils par défaut | `config.example.json` (3 profils, 5 rappels, nouveaux champs) | OK |
|
||||
| Script de release (portable) | `release.cmd` exécuté | **OK** (zip créé) |
|
||||
| Script d'installation | `installer/traytempo.iss` présent | OK (nécessite Inno Setup pour compiler) |
|
||||
| Script d'installation | `installer/nimpulse.iss` présent | OK (nécessite Inno Setup pour compiler) |
|
||||
|
||||
## Limites connues de la vérification
|
||||
|
||||
@@ -75,6 +75,6 @@ concret effectué, et le résultat observé.
|
||||
run_tests.cmd
|
||||
```
|
||||
|
||||
(ou `nim c -d:release --app:gui src/traytempo.nim` pour le binaire)
|
||||
(ou `nim c -d:release --app:gui src/nimpulse.nim` pour le binaire)
|
||||
|
||||
52 tests au total, tous verts (8 suites).
|
||||
51 tests au total, tous verts (7 suites).
|
||||
|
||||
Reference in New Issue
Block a user