(t *testing.T)
| 569 | } |
| 570 | |
| 571 | func TestErrorEvent(t *testing.T) { |
| 572 | t.Parallel() |
| 573 | |
| 574 | prov := &mockProviderWithError{id: "test/error-model"} |
| 575 | root := agent.New("root", "You are a test agent", agent.WithModel(prov)) |
| 576 | tm := team.New(team.WithAgents(root)) |
| 577 | |
| 578 | rt, err := NewLocalRuntime(t.Context(), tm, WithSessionCompaction(false), WithModelStore(mockModelStore{})) |
| 579 | require.NoError(t, err) |
| 580 | |
| 581 | sess := session.New(session.WithUserMessage("Hi")) |
| 582 | sess.Title = "Unit Test" |
| 583 | |
| 584 | evCh := rt.RunStream(t.Context(), sess) |
| 585 | |
| 586 | var events []Event |
| 587 | for ev := range evCh { |
| 588 | events = append(events, ev) |
| 589 | } |
| 590 | |
| 591 | require.Len(t, events, 8) |
| 592 | require.IsType(t, &TeamInfoEvent{}, events[0]) |
| 593 | require.IsType(t, &ToolsetInfoEvent{}, events[1]) |
| 594 | require.IsType(t, &UserMessageEvent{}, events[2]) |
| 595 | require.IsType(t, &StreamStartedEvent{}, events[3]) |
| 596 | require.IsType(t, &ToolsetInfoEvent{}, events[4]) |
| 597 | require.IsType(t, &AgentInfoEvent{}, events[5]) |
| 598 | require.IsType(t, &ErrorEvent{}, events[6]) |
| 599 | require.IsType(t, &StreamStoppedEvent{}, events[7]) |
| 600 | |
| 601 | errorEvent := events[6].(*ErrorEvent) |
| 602 | require.Contains(t, errorEvent.Error, "simulated error") |
| 603 | } |
| 604 | |
| 605 | func TestContextCancellation(t *testing.T) { |
| 606 | t.Parallel() |
nothing calls this directly
no test coverage detected