X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/153f3f9b4b09d521412eacca30eddeed395c3f41..ec38dadaaf127d8bd2ffb72df450e8d3f5ac88c0:/daemon_test.go diff --git a/daemon_test.go b/daemon_test.go index 3d84faa..2dfe7f1 100644 --- a/daemon_test.go +++ b/daemon_test.go @@ -23,7 +23,7 @@ func TestClientsSeeTheTurnAsItHappens(t *testing.T) { modelWriteEvents(w, modelCompletedEvent([]any{modelMessageItem("It said hi.")}, 100, 0, 5)) } - socket := startTestDaemon(t, server) + socket := daemonStartTest(t, server) first := terminalStartTestClient(t, socket) second := terminalStartTestClient(t, socket) first.WaitFor(t, "[connected to OneChat]") @@ -54,7 +54,7 @@ func TestStopInterruptsTheTurn(t *testing.T) { <-release } - socket := startTestDaemon(t, server) + socket := daemonStartTest(t, server) client := terminalStartTestClient(t, socket) client.Type("a long task") <-arrived @@ -70,7 +70,7 @@ func TestListenSocketReplacesAnOldSocketFile(t *testing.T) { path := filepath.Join(t.TempDir(), socketFileName) require.NoError(t, os.WriteFile(path, nil, 0o600)) - listener, err := listenSocket(path) + listener, err := daemonListenSocket(path) require.NoError(t, err) info, err := os.Stat(path) @@ -81,7 +81,7 @@ func TestListenSocketReplacesAnOldSocketFile(t *testing.T) { } func TestListenSocketRefusesALongPath(t *testing.T) { - _, err := listenSocket(filepath.Join(t.TempDir(), strings.Repeat("d", 100), socketFileName)) + _, err := daemonListenSocket(filepath.Join(t.TempDir(), strings.Repeat("d", 100), socketFileName)) require.ErrorContains(t, err, "set ONECHAT_DIR to a shorter path") } @@ -97,35 +97,21 @@ func TestDaemonWritesNoFileForALongSocketPath(t *testing.T) { require.Empty(t, entries) } -func TestOneProcessHoldsTheTokens(t *testing.T) { - dir := t.TempDir() - lock, err := lockTokens(dir) - require.NoError(t, err) - - _, err = lockTokens(dir) - require.ErrorIs(t, err, errTokensInUse) - require.NoError(t, lock.Close()) - - lock, err = lockTokens(dir) - require.NoError(t, err) - require.NoError(t, lock.Close()) -} - -// startTestDaemon serves a new agent on a socket in a temporary directory and +// daemonStartTest serves a new agent on a socket in a temporary directory and // returns the socket path. The commands of the agent run in a temporary // directory. -func startTestDaemon(t *testing.T, server *ModelFake) string { +func daemonStartTest(t *testing.T, server *ModelFake) string { t.Helper() - return startTestDaemonWithBot(t, server, nil) + return daemonStartTestWithBot(t, server, nil) } -// startTestDaemonWithBot is startTestDaemon with bot, which can be nil. -func startTestDaemonWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) string { +// daemonStartTestWithBot is daemonStartTest with bot, which can be nil. +func daemonStartTestWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) string { t.Helper() dir := t.TempDir() - agent, err := openAgent(filepath.Join(dir, agentDirName)) + agent, err := openAgent(filepath.Join(dir, daemonAgentDirName)) require.NoError(t, err) agent.config.Workdir = t.TempDir() @@ -134,15 +120,15 @@ func startTestDaemonWithBot(t *testing.T, server *ModelFake, bot *TelegramBot) s require.NoError(t, err) socket := filepath.Join(dir, socketFileName) - listener, err := listenSocket(socket) + listener, err := daemonListenSocket(socket) require.NoError(t, err) client := newModelClient(server.URL, ModelAPIKey(modelTestKey), agent.CacheKey(), filepath.Join(agent.dir, "usage.jsonl")) ctx, cancel := context.WithCancel(t.Context()) done := make(chan error) go func() { - done <- serveAgent(ctx, listener, bot, func(notify func(Event)) (*loop, error) { - return newLoop(agent, memory, client, clock.Now, notify) + done <- daemonServe(ctx, listener, bot, func(notify func(Event)) (*TurnLoop, error) { + return newTurnLoop(agent, memory, client, clock.Now, notify) }) }()