- Add /summary [YYYY-MM] command for monthly work/break/day-off totals - Add weekly totals row to main menu status - Add /setbreak <minutes> for configurable daily break threshold - Fix HandleMessage routing: extract command name instead of exact match (fixes /export YYYY-MM, /edit, /note, /summary, /setbreak) - Update README with full command table and configurable break docs
30 lines
654 B
Go
30 lines
654 B
Go
package bot
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestFormatMonthTitle(t *testing.T) {
|
|
tests := []struct {
|
|
cal string
|
|
year, m int
|
|
want string
|
|
}{
|
|
{"gregorian", 2026, 6, "June 2026"},
|
|
{"gregorian", 2024, 1, "January 2024"},
|
|
{"jalali", 1404, 1, "Farvardin 1404"},
|
|
{"jalali", 1405, 12, "Esfand 1405"},
|
|
{"hijri", 1447, 1, "Muharram 1447"},
|
|
{"hijri", 1447, 12, "Dhu al-Hijjah 1447"},
|
|
}
|
|
for _, tc := range tests {
|
|
t.Run(tc.want, func(t *testing.T) {
|
|
got := formatMonthTitle(tc.cal, tc.year, tc.m)
|
|
if got != tc.want {
|
|
t.Errorf("formatMonthTitle(%q, %d, %d) = %q, want %q",
|
|
tc.cal, tc.year, tc.m, got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|