(t *testing.T)
| 645 | } |
| 646 | |
| 647 | func TestSessionFromEventsWithError(t *testing.T) { |
| 648 | t.Parallel() |
| 649 | |
| 650 | events := []map[string]any{ |
| 651 | {"type": "agent_choice", "content": "Let me try...", "agent_name": "root"}, |
| 652 | {"type": "error", "error": "API rate limit exceeded"}, |
| 653 | {"type": "stream_stopped"}, |
| 654 | } |
| 655 | |
| 656 | sess := SessionFromEvents(events, "test", []string{"do something"}) |
| 657 | |
| 658 | // Should have: user message, assistant message, error message |
| 659 | assert.Len(t, sess.Messages, 3) |
| 660 | |
| 661 | // Check the error message was captured |
| 662 | errorMsg := sess.Messages[2].Message |
| 663 | require.NotNil(t, errorMsg) |
| 664 | assert.Equal(t, chat.MessageRoleSystem, errorMsg.Message.Role) |
| 665 | assert.Contains(t, errorMsg.Message.Content, "API rate limit exceeded") |
| 666 | } |
| 667 | |
| 668 | func TestSessionFromEventsWithSessionTitle(t *testing.T) { |
| 669 | t.Parallel() |
nothing calls this directly
no test coverage detected