MCPcopy
hub / github.com/docker/docker-agent / TestUserMessageOrdinalToItemIndex

Function TestUserMessageOrdinalToItemIndex

pkg/server/session_manager_test.go:524–558  ·  view source on GitHub ↗

TestUserMessageOrdinalToItemIndex covers the ordinal translation helper: only user-role messages count; system and assistant items are skipped; out-of-range ordinals are rejected.

(t *testing.T)

Source from the content-addressed store, hash-verified

522// helper: only user-role messages count; system and assistant items
523// are skipped; out-of-range ordinals are rejected.
524func TestUserMessageOrdinalToItemIndex(t *testing.T) {
525 t.Parallel()
526
527 sess := session.New()
528 // Items 0..3: user, system, assistant, user. Ordinal 0 → item 0,
529 // ordinal 1 → item 3.
530 sess.Messages = []session.Item{
531 session.NewMessageItem(session.UserMessage("u1")),
532 session.NewMessageItem(&session.Message{
533 Message: chat.Message{Role: chat.MessageRoleSystem, Content: "sys"},
534 }),
535 session.NewMessageItem(session.NewAgentMessage("root", &chat.Message{
536 Role: chat.MessageRoleAssistant,
537 Content: "a1",
538 })),
539 session.NewMessageItem(session.UserMessage("u2")),
540 }
541
542 idx, err := userMessageOrdinalToItemIndex(sess, 0)
543 require.NoError(t, err)
544 assert.Equal(t, 0, idx)
545
546 idx, err = userMessageOrdinalToItemIndex(sess, 1)
547 require.NoError(t, err)
548 assert.Equal(t, 3, idx, "ordinal 1 must skip past the system and assistant items")
549
550 _, err = userMessageOrdinalToItemIndex(sess, 2)
551 require.ErrorIs(t, err, ErrForkOutOfRange)
552
553 _, err = userMessageOrdinalToItemIndex(sess, -1)
554 require.ErrorIs(t, err, ErrForkOutOfRange)
555
556 _, err = userMessageOrdinalToItemIndex(sess, 99)
557 require.ErrorIs(t, err, ErrForkOutOfRange)
558}

Callers

nothing calls this directly

Calls 5

NewFunction · 0.92
NewMessageItemFunction · 0.92
UserMessageFunction · 0.92
NewAgentMessageFunction · 0.92

Tested by

no test coverage detected