(t *testing.T)
| 436 | } |
| 437 | |
| 438 | func TestMixedContentAndReasoning(t *testing.T) { |
| 439 | t.Parallel() |
| 440 | |
| 441 | stream := newStreamBuilder(). |
| 442 | AddReasoning("The user wants a greeting"). |
| 443 | AddContent("Hello!"). |
| 444 | AddReasoning(" I should be friendly"). |
| 445 | AddContent(" How can I help you today?"). |
| 446 | AddStopWithUsage(15, 20). |
| 447 | Build() |
| 448 | |
| 449 | sess := session.New(session.WithUserMessage("Hi there")) |
| 450 | |
| 451 | events := runSession(t, sess, stream) |
| 452 | |
| 453 | // Extract the actual message from MessageAddedEvent to use in comparison |
| 454 | // (it contains dynamic fields like CreatedAt that we can't predict) |
| 455 | require.Len(t, events, 13) |
| 456 | msgAdded := events[10].(*MessageAddedEvent) |
| 457 | require.NotNil(t, msgAdded.Message) |
| 458 | |
| 459 | expectedEvents := []Event{ |
| 460 | TeamInfo([]AgentDetails{{Name: "root", Provider: "test", Model: "mock-model"}}, "root"), |
| 461 | ToolsetInfo(0, false, "root"), |
| 462 | UserMessage("Hi there", sess.ID, nil, 0), |
| 463 | StreamStarted(sess.ID, "root"), |
| 464 | ToolsetInfo(0, false, "root"), |
| 465 | AgentInfo("root", "test/mock-model", "", ""), |
| 466 | AgentChoiceReasoning("root", sess.ID, "The user wants a greeting"), |
| 467 | AgentChoice("root", sess.ID, "Hello!"), |
| 468 | AgentChoiceReasoning("root", sess.ID, " I should be friendly"), |
| 469 | AgentChoice("root", sess.ID, " How can I help you today?"), |
| 470 | MessageAdded(sess.ID, msgAdded.Message, "root"), |
| 471 | NewTokenUsageEvent(sess.ID, "root", &Usage{InputTokens: 15, OutputTokens: 20, ContextLength: 35, LastMessage: &MessageUsage{ |
| 472 | Usage: chat.Usage{InputTokens: 15, OutputTokens: 20}, |
| 473 | Model: "test/mock-model", |
| 474 | FinishReason: chat.FinishReasonStop, |
| 475 | }}), |
| 476 | StreamStopped(sess.ID, "root", "normal"), |
| 477 | } |
| 478 | |
| 479 | assertEventsEqual(t, expectedEvents, events) |
| 480 | } |
| 481 | |
| 482 | func TestToolCallSequence(t *testing.T) { |
| 483 | t.Parallel() |
nothing calls this directly
no test coverage detected