1package agent
2
3import (
4 "bytes"
5 "testing"
6 "time"
7
8 "github.com/bnema/zut/packages/agent/subagents"
9)
10
11func TestRenderTraceInspectionUsesFactualOperations(t *testing.T) {
12 now := time.Date(2026, 8, 12, 7, 0, 30, 0, time.UTC)
13 views := subagents.ProjectTrace([]subagents.TraceEvent{{
14 Type: "tool.started", AgentID: "agent-a", TurnID: "turn-1", Timestamp: now.Add(-30 * time.Second),
15 }})
16 var out bytes.Buffer
17 if err := renderTraceInspection(&out, views, now); err != nil {
18 t.Fatal(err)
19 }
20 if got, want := out.String(), "agent-a tool open 30s\n"; got != want {
21 t.Fatalf("inspection = %q, want %q", got, want)
22 }
23}
24
25func TestRenderTraceInspectionUsesFutureOrientedLastEventTime(t *testing.T) {
26 now := time.Date(2026, 8, 12, 7, 0, 30, 0, time.UTC)
27 views := map[string]subagents.AgentTraceView{
28 "agent-a": {AgentID: "agent-a", LastEvent: subagents.TraceEvent{Type: "agent.ready", Timestamp: now.Add(time.Minute)}},
29 }
30 var out bytes.Buffer
31 if err := renderTraceInspection(&out, views, now); err != nil {
32 t.Fatal(err)
33 }
34 if got, want := out.String(), "agent-a no observable operation; last event agent.ready in 1m0s\n"; got != want {
35 t.Fatalf("inspection = %q, want %q", got, want)
36 }
37}