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