(t *testing.T)
| 308 | } |
| 309 | |
| 310 | func TestSimple(t *testing.T) { |
| 311 | t.Parallel() |
| 312 | |
| 313 | stream := newStreamBuilder(). |
| 314 | AddContent("Hello"). |
| 315 | AddStopWithUsage(3, 2). |
| 316 | Build() |
| 317 | |
| 318 | sess := session.New(session.WithUserMessage("Hi")) |
| 319 | |
| 320 | events := runSession(t, sess, stream) |
| 321 | |
| 322 | // Extract the actual message from MessageAddedEvent to use in comparison |
| 323 | // (it contains dynamic fields like CreatedAt that we can't predict) |
| 324 | require.Len(t, events, 10) |
| 325 | msgAdded := events[7].(*MessageAddedEvent) |
| 326 | require.NotNil(t, msgAdded.Message) |
| 327 | require.Equal(t, "Hello", msgAdded.Message.Message.Content) |
| 328 | require.Equal(t, chat.MessageRoleAssistant, msgAdded.Message.Message.Role) |
| 329 | |
| 330 | expectedEvents := []Event{ |
| 331 | TeamInfo([]AgentDetails{{Name: "root", Provider: "test", Model: "mock-model"}}, "root"), |
| 332 | ToolsetInfo(0, false, "root"), |
| 333 | UserMessage("Hi", sess.ID, nil, 0), |
| 334 | StreamStarted(sess.ID, "root"), |
| 335 | ToolsetInfo(0, false, "root"), |
| 336 | AgentInfo("root", "test/mock-model", "", ""), |
| 337 | AgentChoice("root", sess.ID, "Hello"), |
| 338 | MessageAdded(sess.ID, msgAdded.Message, "root"), |
| 339 | NewTokenUsageEvent(sess.ID, "root", &Usage{InputTokens: 3, OutputTokens: 2, ContextLength: 5, LastMessage: &MessageUsage{ |
| 340 | Usage: chat.Usage{InputTokens: 3, OutputTokens: 2}, |
| 341 | Model: "test/mock-model", |
| 342 | FinishReason: chat.FinishReasonStop, |
| 343 | }}), |
| 344 | StreamStopped(sess.ID, "root", "normal"), |
| 345 | } |
| 346 | |
| 347 | assertEventsEqual(t, expectedEvents, events) |
| 348 | } |
| 349 | |
| 350 | func TestMultipleContentChunks(t *testing.T) { |
| 351 | t.Parallel() |
nothing calls this directly
no test coverage detected