TrayTempo v0.2.0 : minuteur Pomodoro Windows en Nim avec interface intuitive
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
## test_notifications.nim
|
||||
## ======================
|
||||
## Tests unitaires de la rotation des rappels santé (logique pure). Aucun
|
||||
## appel Win32 : on ne teste que nextHealthReminder.
|
||||
|
||||
import std/unittest
|
||||
import ../src/notifications
|
||||
import ../src/config
|
||||
|
||||
suite "health reminder rotation":
|
||||
test "does not repeat the same reminder twice in a row":
|
||||
let cfg = defaultConfig()
|
||||
let a = nextHealthReminder(cfg)
|
||||
let b = nextHealthReminder(cfg)
|
||||
check a.len > 0
|
||||
check b.len > 0
|
||||
check a != b
|
||||
|
||||
test "a single enabled reminder is always returned":
|
||||
var cfg = defaultConfig()
|
||||
for i in 0 ..< cfg.healthReminders.len:
|
||||
cfg.healthReminders[i].enabled = (i == 0)
|
||||
check nextHealthReminder(cfg) == "Lève-toi et marche 2 minutes"
|
||||
check nextHealthReminder(cfg) == "Lève-toi et marche 2 minutes"
|
||||
|
||||
test "returns empty string when nothing is enabled":
|
||||
var cfg = defaultConfig()
|
||||
for i in 0 ..< cfg.healthReminders.len:
|
||||
cfg.healthReminders[i].enabled = false
|
||||
check nextHealthReminder(cfg) == ""
|
||||
|
||||
test "skips disabled reminders":
|
||||
var cfg = defaultConfig()
|
||||
for i in 0 ..< cfg.healthReminders.len:
|
||||
cfg.healthReminders[i].enabled = (i == 2)
|
||||
check nextHealthReminder(cfg) == cfg.healthReminders[2].text
|
||||
|
||||
test "custom reminder text is returned verbatim":
|
||||
var cfg = defaultConfig()
|
||||
for i in 0 ..< cfg.healthReminders.len:
|
||||
cfg.healthReminders[i].enabled = false
|
||||
cfg.healthReminders.add HealthReminder(text: "Médite 5 minutes", enabled: true)
|
||||
check nextHealthReminder(cfg) == "Médite 5 minutes"
|
||||
Reference in New Issue
Block a user