8 "github.com/stretchr/testify/require"
11 // newTestIdleTurnLoop opens a loop with no model calls or turn goroutine.
12 // Callers can test queued messages and events with synctest fake time.
13 func newTestIdleTurnLoop(t *testing.T, whatsapp *WhatsApp) (*TurnLoop, *TurnEventRecorder) {
16 agent, err := openAgent(t.TempDir())
17 require.NoError(t, err)
19 memory, err := openMemory(t.Context(), agent.dir, time.Now, newFakeSummarizer(), discardLog())
20 require.NoError(t, err)
22 require.NoError(t, memory.Close())
25 events := &TurnEventRecorder{}
26 client := newModelClient("https://example.com", ModelAPIKey(modelTestKey), agent.CacheKey(), filepath.Join(agent.dir, "usage.jsonl"))
27 loop, err := newTurnLoop(agent, memory, newTestSubagents(t), whatsapp, newTestSchedules(t, time.Now), client, time.Now, discardLog(), events.Add)
28 require.NoError(t, err)