X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/97274864799ac2eea84bf80c9727a810b695db55..09cde69fdffe2721434392036f98dc241177f5a1:/daemon_test.go?ds=inline diff --git a/daemon_test.go b/daemon_test.go index 91d6ecc..4bcc05a 100644 --- a/daemon_test.go +++ b/daemon_test.go @@ -116,6 +116,18 @@ func TestListenSocketRefusesALongPath(t *testing.T) { require.ErrorContains(t, err, "set ONECHAT_DIR to a shorter path") } +func TestDaemonWritesNoFileForALongSocketPath(t *testing.T) { + dir := filepath.Join(t.TempDir(), strings.Repeat("d", 100)) + t.Setenv("ONECHAT_DIR", dir) + + err := daemon(t.Context(), io.Discard) + require.ErrorContains(t, err, "set ONECHAT_DIR to a shorter path") + + entries, err := os.ReadDir(dir) + require.NoError(t, err) + require.Empty(t, entries) +} + func TestOneProcessHoldsTheTokens(t *testing.T) { dir := t.TempDir() lock, err := lockTokens(dir) @@ -142,10 +154,15 @@ func TestEventText(t *testing.T) { text: "Done.", }, { - name: "user message not shown", - event: Event{Kind: "user", Text: "typed"}, + name: "own user message not shown", + event: Event{Kind: "user", Text: "typed", Source: terminalSource}, text: "", }, + { + name: "user message of another source marked", + event: Event{Kind: "user", Text: "from the phone", Source: "telegram"}, + text: "[telegram] from the phone", + }, { name: "long result cut", event: Event{Kind: "echo", Text: strings.Repeat("line\n", 12)}, @@ -225,6 +242,13 @@ func (b *syncBuffer) String() string { func startTestDaemon(t *testing.T, server *fakeResponses) string { t.Helper() + return startTestDaemonWithBot(t, server, nil) +} + +// startTestDaemonWithBot is startTestDaemon with bot, which can be nil. +func startTestDaemonWithBot(t *testing.T, server *fakeResponses, bot *TelegramBot) string { + t.Helper() + dir := t.TempDir() agent, err := openAgent(filepath.Join(dir, agentDirName)) require.NoError(t, err) @@ -242,7 +266,7 @@ func startTestDaemon(t *testing.T, server *fakeResponses) string { ctx, cancel := context.WithCancel(t.Context()) done := make(chan error) go func() { - done <- serveAgent(ctx, listener, func(notify func(Event)) (*loop, error) { + done <- serveAgent(ctx, listener, bot, func(notify func(Event)) (*loop, error) { return newLoop(agent, memory, client, clock.Now, notify) }) }()