]> git.giacomolli.uk - onechat/blobdiff - subagent_run_test.go
Reflow comments and expand event literals
[onechat] / subagent_run_test.go
index 71c96ea60c0e312eb00971b9e07bc0023f9ac3e9..389a4bf2d56ce11ff3c589f0a835fafb03d33e76 100644 (file)
@@ -64,6 +64,7 @@ func TestSpawnRunsASubagentInTheBackground(t *testing.T) {
                "work: " + report,
                "reply: Noted.",
        }, test.Log(t))
                "work: " + report,
                "reply: Noted.",
        }, test.Log(t))
+
        require.Equal(t, Event{
                Kind:   "work",
                ID:     4,
        require.Equal(t, Event{
                Kind:   "work",
                ID:     4,
@@ -71,6 +72,7 @@ func TestSpawnRunsASubagentInTheBackground(t *testing.T) {
                Source: name,
                Status: subagentFinished,
        }, test.events.LastEvent("work"))
                Source: name,
                Status: subagentFinished,
        }, test.events.LastEvent("work"))
+
        require.Equal(t, "<6>subagent started name="+name+"\n<6>subagent done name="+name+" after=0s\n", test.logs.String())
 
        var first, second *ModelFakeCall
        require.Equal(t, "<6>subagent started name="+name+"\n<6>subagent done name="+name+" after=0s\n", test.logs.String())
 
        var first, second *ModelFakeCall
@@ -198,6 +200,7 @@ func TestFullContextGivesAFailedReport(t *testing.T) {
                "work: [" + name + "]\nfailed: create model response: model call: HTTP 400: " + subagentTestFullContext + "\n\nFull chat: zoom(\"" + name + "\")",
                "reply: It failed.",
        }, test.Log(t))
                "work: [" + name + "]\nfailed: create model response: model call: HTTP 400: " + subagentTestFullContext + "\n\nFull chat: zoom(\"" + name + "\")",
                "reply: It failed.",
        }, test.Log(t))
+
        require.Equal(t, subagentFailed, test.events.LastEvent("work").Status)
        require.Equal(t, "<6>subagent started name="+name+"\n<3>subagent failed name="+name+" after=0s: create model response: model call: HTTP 400: "+subagentTestFullContext+"\n", test.logs.String())
 }
        require.Equal(t, subagentFailed, test.events.LastEvent("work").Status)
        require.Equal(t, "<6>subagent started name="+name+"\n<3>subagent failed name="+name+" after=0s: create model response: model call: HTTP 400: "+subagentTestFullContext+"\n", test.logs.String())
 }
@@ -385,6 +388,7 @@ func TestStopEndsASubagentAndItsCommand(t *testing.T) {
                "note: Stopped by the user: " + name + ".",
                "work: " + subagentReport(name, []string{"stopped"}),
        }, test.Log(t))
                "note: Stopped by the user: " + name + ".",
                "work: " + subagentReport(name, []string{"stopped"}),
        }, test.Log(t))
+
        require.Equal(t, subagentStopped, test.events.LastEvent("work").Status)
        require.Equal(t, "<6>subagent started name="+name+"\n<6>subagent stopped name="+name+" after=0s\n", test.logs.String())
 
        require.Equal(t, subagentStopped, test.events.LastEvent("work").Status)
        require.Equal(t, "<6>subagent started name="+name+"\n<6>subagent stopped name="+name+" after=0s\n", test.logs.String())
 
@@ -518,6 +522,7 @@ func TestRestartReportsASubagentThatCannotGoOn(t *testing.T) {
                "work: " + subagentReport("BlueFox", []string{"failed: no agent BlueFox"}),
                "reply: a line",
        }, subagentTestChat(t, memory))
                "work: " + subagentReport("BlueFox", []string{"failed: no agent BlueFox"}),
                "reply: a line",
        }, subagentTestChat(t, memory))
+
        require.Equal(t, subagentFailed, events.LastEvent("work").Status)
        require.Equal(t, "<3>subagent lost at restart name=BlueFox: no agent BlueFox\n", logs.String())
 
        require.Equal(t, subagentFailed, events.LastEvent("work").Status)
        require.Equal(t, "<3>subagent lost at restart name=BlueFox: no agent BlueFox\n", logs.String())
 
@@ -527,8 +532,8 @@ func TestRestartReportsASubagentThatCannotGoOn(t *testing.T) {
 }
 
 // subagentTestStart runs a loop of agent with its memory and subagents in the
 }
 
 // subagentTestStart runs a loop of agent with its memory and subagents in the
-// agent directory, as the daemon does. The returned function stops the loop
-// and closes the files.
+// agent directory, as the daemon does. The returned function stops the loop and
+// closes the files.
 func subagentTestStart(t *testing.T, agent *Agent, server *ModelFake, events *TurnEventRecorder, logger *slog.Logger) (*TurnLoop, *Memory, func()) {
        t.Helper()
 
 func subagentTestStart(t *testing.T, agent *Agent, server *ModelFake, events *TurnEventRecorder, logger *slog.Logger) (*TurnLoop, *Memory, func()) {
        t.Helper()
 
@@ -557,8 +562,7 @@ func subagentTestStart(t *testing.T, agent *Agent, server *ModelFake, events *Tu
        }
 }
 
        }
 }
 
-// subagentTestChat returns each message of the chat in memory as
-// "kind: text".
+// subagentTestChat returns each message of the chat in memory as "kind: text".
 func subagentTestChat(t *testing.T, memory *Memory) []string {
        t.Helper()
 
 func subagentTestChat(t *testing.T, memory *Memory) []string {
        t.Helper()
 
@@ -588,8 +592,8 @@ func subagentTestLastItem(call ModelFakeCall) map[string]any {
        return input[len(input)-1].(map[string]any)
 }
 
        return input[len(input)-1].(map[string]any)
 }
 
-// subagentTestText returns the text of the user message item, or "" for
-// another item.
+// subagentTestText returns the text of the user message item, or "" for another
+// item.
 func subagentTestText(item map[string]any) string {
        content, _ := item["content"].([]any)
 
 func subagentTestText(item map[string]any) string {
        content, _ := item["content"].([]any)