(t *testing.T)
| 348 | } |
| 349 | |
| 350 | func TestMultipleContentChunks(t *testing.T) { |
| 351 | t.Parallel() |
| 352 | |
| 353 | stream := newStreamBuilder(). |
| 354 | AddContent("Hello "). |
| 355 | AddContent("there, "). |
| 356 | AddContent("how "). |
| 357 | AddContent("are "). |
| 358 | AddContent("you?"). |
| 359 | AddStopWithUsage(8, 12). |
| 360 | Build() |
| 361 | |
| 362 | sess := session.New(session.WithUserMessage("Please greet me")) |
| 363 | |
| 364 | events := runSession(t, sess, stream) |
| 365 | |
| 366 | // Extract the actual message from MessageAddedEvent to use in comparison |
| 367 | // (it contains dynamic fields like CreatedAt that we can't predict) |
| 368 | require.Len(t, events, 14) |
| 369 | msgAdded := events[11].(*MessageAddedEvent) |
| 370 | require.NotNil(t, msgAdded.Message) |
| 371 | |
| 372 | expectedEvents := []Event{ |
| 373 | TeamInfo([]AgentDetails{{Name: "root", Provider: "test", Model: "mock-model"}}, "root"), |
| 374 | ToolsetInfo(0, false, "root"), |
| 375 | UserMessage("Please greet me", sess.ID, nil, 0), |
| 376 | StreamStarted(sess.ID, "root"), |
| 377 | ToolsetInfo(0, false, "root"), |
| 378 | AgentInfo("root", "test/mock-model", "", ""), |
| 379 | AgentChoice("root", sess.ID, "Hello "), |
| 380 | AgentChoice("root", sess.ID, "there, "), |
| 381 | AgentChoice("root", sess.ID, "how "), |
| 382 | AgentChoice("root", sess.ID, "are "), |
| 383 | AgentChoice("root", sess.ID, "you?"), |
| 384 | MessageAdded(sess.ID, msgAdded.Message, "root"), |
| 385 | NewTokenUsageEvent(sess.ID, "root", &Usage{InputTokens: 8, OutputTokens: 12, ContextLength: 20, LastMessage: &MessageUsage{ |
| 386 | Usage: chat.Usage{InputTokens: 8, OutputTokens: 12}, |
| 387 | Model: "test/mock-model", |
| 388 | FinishReason: chat.FinishReasonStop, |
| 389 | }}), |
| 390 | StreamStopped(sess.ID, "root", "normal"), |
| 391 | } |
| 392 | |
| 393 | assertEventsEqual(t, expectedEvents, events) |
| 394 | } |
| 395 | |
| 396 | func TestWithReasoning(t *testing.T) { |
| 397 | t.Parallel() |
nothing calls this directly
no test coverage detected