X-Git-Url: http://git.giacomolli.uk/onechat/blobdiff_plain/1e7f78e7b12d3881a6c345d191dfef6e42d9b01f..2e2524881dfe8f6c5cabfd9d342d5d3492953bd4:/tools_test.go?ds=sidebyside diff --git a/tools_test.go b/tools_test.go index 8960b8f..dc08fdc 100644 --- a/tools_test.go +++ b/tools_test.go @@ -126,9 +126,10 @@ func TestZoomAndDateReadTheChat(t *testing.T) { } box := &Toolbox{ - log: memory, - chat: memory, - workdir: t.TempDir(), + log: memory, + chat: memory, + subagents: newTestSubagents(t), + workdir: t.TempDir(), } testCases := []struct { @@ -169,6 +170,23 @@ func TestZoomAndDateReadTheChat(t *testing.T) { require.Equal(t, "error: message 4 does not exist", box.run(t.Context(), "date", `{"id":4}`)) } +func TestZoomWithANameGivesTheWholeChatOfTheAgent(t *testing.T) { + box := newTestToolbox(t, &ToolRecordingLog{}, t.TempDir()) + subagent, err := box.subagents.Create(t.Context()) + require.NoError(t, err) + + for _, message := range [][2]string{{"note", "subagent"}, {"user", "Count the files."}} { + _, err = subagent.Append(message[0], message[1]) + require.NoError(t, err) + } + + output := box.run(t.Context(), "zoom", `{"id":0,"n":1,"name":"`+subagent.name+`"}`) + require.Equal(t, "0|note: subagent\n\n1|user: Count the files.", output) + + require.Equal(t, "error: no agent BlueFox", box.run(t.Context(), "zoom", `{"id":0,"n":1,"name":"BlueFox"}`)) + require.Equal(t, "error: line 0+1 goes past the last message, -1", box.run(t.Context(), "zoom", `{"id":0,"n":1,"name":null}`)) +} + func TestClipKeepsTheHeadAndTheTail(t *testing.T) { short := strings.Repeat("a", toolClipCharacters) require.Equal(t, short, toolClip(short)) @@ -248,8 +266,9 @@ func newTestToolbox(t *testing.T, log ToolLog, dir string) *Toolbox { }) return &Toolbox{ - log: log, - chat: memory, - workdir: dir, + log: log, + chat: memory, + subagents: newTestSubagents(t), + workdir: dir, } }