import (
"context"
- "log"
"os"
"path/filepath"
"strings"
now := start.Add(3*time.Hour + 30*time.Minute)
due := schedules.Due(now)
require.Len(t, due, 2)
+
for _, schedule := range due {
require.NoError(t, schedules.Done(schedule, now))
}
}
logs := &SyncBuffer{}
- schedules, err := openSchedules(filepath.Join(t.TempDir(), scheduleFileName), clock.Now, log.New(logs, "", 0))
+ schedules, err := openSchedules(filepath.Join(t.TempDir(), scheduleFileName), clock.Now, daemonTestLogger(logs))
require.NoError(t, err)
server := newModelFake(t)
require.Equal(t, "[Schedule 1] Sunday 2026-11-08 20:05 -03:00, once\nRemind the user to drink water.\n"+scheduleEmptyReply, texts[len(texts)-1])
require.Equal(t, scheduleSource, test.events.LastEvent("work").Source)
require.Equal(t, "No schedules.", schedules.List())
- require.Equal(t, "schedule 1 runs\n", logs.String())
+ require.Equal(t, "<6>schedule ran id=1\n", logs.String())
}
func TestSchedulesRunMissedSchedulesOnceAtTheStart(t *testing.T) {
}
logs := &SyncBuffer{}
- schedules, err := openSchedules(path, clock.Now, log.New(logs, "", 0))
+ schedules, err := openSchedules(path, clock.Now, daemonTestLogger(logs))
require.NoError(t, err)
server := newModelFake(t)
"[Schedule 2] Sunday 2026-11-08 10:00 -03:00, repeats 0 * * * *\nTell the user the time.\n" + scheduleLateLine + "\n" + scheduleEmptyReply,
}, texts[len(texts)-2:])
require.Equal(t, "2 | Sunday 2026-11-08 21:00 -03:00 | 0 * * * * | Tell the user the time.", schedules.List())
- require.Equal(t, "schedule 1 runs 11h30m0s late, because the daemon was stopped at its time\nschedule 2 runs 10h30m0s late, because the daemon was stopped at its time\n", logs.String())
+ require.Equal(t, "<6>schedule ran id=1 late=11h30m0s\n<6>schedule ran id=2 late=10h30m0s\n", logs.String())
}
func TestDaemonRunsADueSchedule(t *testing.T) {