]> git.giacomolli.uk - onechat/blobdiff - daemon_start_helper_test.go
Check spacing between Go statement blocks
[onechat] / daemon_start_helper_test.go
index b2c3787d4189a8a285b754feb1ffbe207e5100b7..81399ce3ca3c3548d815bd52294723e58863d6c3 100644 (file)
@@ -4,12 +4,13 @@ import (
        "context"
        "path/filepath"
        "testing"
        "context"
        "path/filepath"
        "testing"
+       "time"
 
        "github.com/stretchr/testify/require"
 )
 
 
        "github.com/stretchr/testify/require"
 )
 
-// daemonStartTestWithBot is daemonStartTest with bot, which can be nil. WhatsApp
-// is not linked.
+// daemonStartTestWithBot is daemonStartTest with bot, which can be nil.
+// WhatsApp is not linked.
 func daemonStartTestWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) string {
        t.Helper()
 
 func daemonStartTestWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) string {
        t.Helper()
 
@@ -24,13 +25,22 @@ func daemonStartTestWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) s
 func daemonStartTestWithWhatsApp(t *testing.T, server *ModelFake, bot *TelegramBot, whatsapp *WhatsApp) (string, *Memory) {
        t.Helper()
 
 func daemonStartTestWithWhatsApp(t *testing.T, server *ModelFake, bot *TelegramBot, whatsapp *WhatsApp) (string, *Memory) {
        t.Helper()
 
+       clock := newTestClock()
+
+       return daemonStartTestWithSchedules(t, server, bot, whatsapp, newTestSchedules(t, clock.Now), clock.Now)
+}
+
+// daemonStartTestWithSchedules is daemonStartTestWithWhatsApp with schedules,
+// and with clock for the memory and the turns.
+func daemonStartTestWithSchedules(t *testing.T, server *ModelFake, bot *TelegramBot, whatsapp *WhatsApp, schedules *Schedules, clock func() time.Time) (string, *Memory) {
+       t.Helper()
+
        dir := t.TempDir()
        agent, err := openAgent(filepath.Join(dir, daemonAgentDirName))
        require.NoError(t, err)
 
        agent.config.Workdir = t.TempDir()
        dir := t.TempDir()
        agent, err := openAgent(filepath.Join(dir, daemonAgentDirName))
        require.NoError(t, err)
 
        agent.config.Workdir = t.TempDir()
-       clock := newTestClock()
-       memory, err := openMemory(t.Context(), agent.dir, clock.Now, newFakeSummarizer())
+       memory, err := openMemory(t.Context(), agent.dir, clock, newFakeSummarizer(), discardLog())
        require.NoError(t, err)
 
        socket := filepath.Join(dir, socketFileName)
        require.NoError(t, err)
 
        socket := filepath.Join(dir, socketFileName)
@@ -40,9 +50,10 @@ func daemonStartTestWithWhatsApp(t *testing.T, server *ModelFake, bot *TelegramB
        client := newModelClient(server.URL, ModelAPIKey(modelTestKey), agent.CacheKey(), filepath.Join(agent.dir, "usage.jsonl"))
        ctx, cancel := context.WithCancel(t.Context())
        done := make(chan error)
        client := newModelClient(server.URL, ModelAPIKey(modelTestKey), agent.CacheKey(), filepath.Join(agent.dir, "usage.jsonl"))
        ctx, cancel := context.WithCancel(t.Context())
        done := make(chan error)
+       subagents := newTestSubagents(t)
        go func() {
        go func() {
-               done <- daemonServe(ctx, listener, bot, whatsapp, func(notify func(Event)) (*TurnLoop, error) {
-                       return newTurnLoop(agent, memory, newTestSubagents(t), client, clock.Now, notify)
+               done <- daemonServe(ctx, listener, bot, whatsapp, schedules, func(notify func(Event)) (*TurnLoop, error) {
+                       return newTurnLoop(agent, memory, subagents, whatsapp, schedules, client, clock, discardLog(), notify)
                })
        }()
 
                })
        }()