X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/723f6e18adc6482ed913e1618c8a76e981720c2b..0cb73c3dde36d0078f3c1aa4200f2edcb5ceed38:/daemon_message_helper_test.go diff --git a/daemon_message_helper_test.go b/daemon_message_helper_test.go index 2122a93..6b599ae 100644 --- a/daemon_message_helper_test.go +++ b/daemon_message_helper_test.go @@ -22,31 +22,40 @@ type DaemonMessageTest struct { done []chan error } -func (r *DaemonMessageTest) Start(t *testing.T, indices ...int) { +func newDaemonMessageTest(t *testing.T, dir string, server *ModelFake) *DaemonMessageTest { t.Helper() - ctx, cancel := context.WithCancel(t.Context()) - r.cancel = cancel - for _, index := range indices { - done := make(chan error, 1) - r.done = append(r.done, done) - go func() { - done <- r.loops[index].Run(ctx) - }() + _, err := os.Stat(filepath.Join(dir, daemonAgentDirName, "children")) + if errors.Is(err, os.ErrNotExist) { + daemonChildConfig(t, dir, "Garden") + daemonChildConfig(t, dir, "Library") + } else { + require.NoError(t, err) } -} -func (r *DaemonMessageTest) Queue(t *testing.T) DaemonMessageFile { - t.Helper() + test := &DaemonMessageTest{ + logs: &SyncBuffer{}, + } - data, err := os.ReadFile(r.messages.path) + test.agents, err = openDaemonAgents(t.Context(), dir, server.URL, ModelAPIKey(modelTestKey), defaultConfig().Compactor, newTestClock().Now, daemonTestLogger(test.logs)) require.NoError(t, err) + t.Cleanup(func() { + test.Close(t) + }) - var file DaemonMessageFile + for _, agent := range test.agents { + events := &TurnEventRecorder{} + loop, err := agent.Loop(nil, events.Add) + require.NoError(t, err) - require.NoError(t, json.Unmarshal(data, &file)) + test.events = append(test.events, events) + test.loops = append(test.loops, loop) + } - return file + test.messages, err = openDaemonMessages(test.loops) + require.NoError(t, err) + + return test } func (r *DaemonMessageTest) Close(t *testing.T) { @@ -68,37 +77,29 @@ func (r *DaemonMessageTest) Close(t *testing.T) { r.agents = nil } -func newDaemonMessageTest(t *testing.T, dir string, server *ModelFake) *DaemonMessageTest { +func (r *DaemonMessageTest) Start(t *testing.T, indices ...int) { t.Helper() - _, err := os.Stat(filepath.Join(dir, daemonAgentDirName, "children")) - if errors.Is(err, os.ErrNotExist) { - daemonChildConfig(t, dir, "Garden") - daemonChildConfig(t, dir, "Library") - } else { - require.NoError(t, err) + ctx, cancel := context.WithCancel(t.Context()) + r.cancel = cancel + for _, index := range indices { + done := make(chan error, 1) + r.done = append(r.done, done) + go func() { + done <- r.loops[index].Run(ctx) + }() } +} - test := &DaemonMessageTest{ - logs: &SyncBuffer{}, - } - test.agents, err = openDaemonAgents(t.Context(), dir, server.URL, ModelAPIKey(modelTestKey), defaultConfig().Compactor, newTestClock().Now, daemonTestLogger(test.logs)) - require.NoError(t, err) - t.Cleanup(func() { - test.Close(t) - }) +func (r *DaemonMessageTest) Queue(t *testing.T) DaemonMessageFile { + t.Helper() - for _, agent := range test.agents { - events := &TurnEventRecorder{} - loop, err := agent.Loop(nil, events.Add) - require.NoError(t, err) + data, err := os.ReadFile(r.messages.path) + require.NoError(t, err) - test.events = append(test.events, events) - test.loops = append(test.loops, loop) - } + var file DaemonMessageFile - test.messages, err = openDaemonMessages(test.loops) - require.NoError(t, err) + require.NoError(t, json.Unmarshal(data, &file)) - return test + return file }