]> git.giacomolli.uk - onechat/blobdiff - daemon_test.go
Fix two comments of the Telegram API and the view
[onechat] / daemon_test.go
index 3d84faaffc7e03117ae2878beafe16cb7a536d70..2dfe7f1b2c89a0b9b5042f8d9ffcfb19398b9a10 100644 (file)
@@ -23,7 +23,7 @@ func TestClientsSeeTheTurnAsItHappens(t *testing.T) {
                modelWriteEvents(w, modelCompletedEvent([]any{modelMessageItem("It said hi.")}, 100, 0, 5))
        }
 
                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]")
        first := terminalStartTestClient(t, socket)
        second := terminalStartTestClient(t, socket)
        first.WaitFor(t, "[connected to OneChat]")
@@ -54,7 +54,7 @@ func TestStopInterruptsTheTurn(t *testing.T) {
                <-release
        }
 
                <-release
        }
 
-       socket := startTestDaemon(t, server)
+       socket := daemonStartTest(t, server)
        client := terminalStartTestClient(t, socket)
        client.Type("a long task")
        <-arrived
        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))
 
        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)
        require.NoError(t, err)
 
        info, err := os.Stat(path)
@@ -81,7 +81,7 @@ func TestListenSocketReplacesAnOldSocketFile(t *testing.T) {
 }
 
 func TestListenSocketRefusesALongPath(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")
 }
 
        require.ErrorContains(t, err, "set ONECHAT_DIR to a shorter path")
 }
 
@@ -97,35 +97,21 @@ func TestDaemonWritesNoFileForALongSocketPath(t *testing.T) {
        require.Empty(t, entries)
 }
 
        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.
 // 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()
 
        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()
        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()
        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)
        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() {
        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)
                })
        }()
 
                })
        }()