8 "github.com/stretchr/testify/require"
11 // daemonStartTestWithBot is daemonStartTest with bot, which can be nil. WhatsApp
13 func daemonStartTestWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) string {
17 agent, err := openAgent(filepath.Join(dir, daemonAgentDirName))
18 require.NoError(t, err)
20 agent.config.Workdir = t.TempDir()
21 clock := newTestClock()
22 memory, err := openMemory(t.Context(), agent.dir, clock.Now, newFakeSummarizer())
23 require.NoError(t, err)
25 whatsapp, _ := whatsappStartTest(t, dir)
26 socket := filepath.Join(dir, socketFileName)
27 listener, err := daemonListenSocket(socket)
28 require.NoError(t, err)
30 client := newModelClient(server.URL, ModelAPIKey(modelTestKey), agent.CacheKey(), filepath.Join(agent.dir, "usage.jsonl"))
31 ctx, cancel := context.WithCancel(t.Context())
32 done := make(chan error)
34 done <- daemonServe(ctx, listener, bot, whatsapp, func(notify func(Event)) (*TurnLoop, error) {
35 return newTurnLoop(agent, memory, newTestSubagents(t), client, clock.Now, notify)
41 require.NoError(t, <-done)
42 require.NoError(t, memory.Close())