]> git.giacomolli.uk - onechat/blob - daemon_start_helper_test.go
Record the subagent name in the usage records
[onechat] / daemon_start_helper_test.go
1 package main
2
3 import (
4 "context"
5 "path/filepath"
6 "testing"
7
8 "github.com/stretchr/testify/require"
9 )
10
11 // daemonStartTestWithBot is daemonStartTest with bot, which can be nil.
12 func daemonStartTestWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) string {
13 t.Helper()
14
15 dir := t.TempDir()
16 agent, err := openAgent(filepath.Join(dir, daemonAgentDirName))
17 require.NoError(t, err)
18
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)
23
24 socket := filepath.Join(dir, socketFileName)
25 listener, err := daemonListenSocket(socket)
26 require.NoError(t, err)
27
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)
31 go func() {
32 done <- daemonServe(ctx, listener, bot, func(notify func(Event)) (*TurnLoop, error) {
33 return newTurnLoop(agent, memory, client, clock.Now, notify)
34 })
35 }()
36
37 t.Cleanup(func() {
38 cancel()
39 require.NoError(t, <-done)
40 require.NoError(t, memory.Close())
41 })
42
43 return socket
44 }