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

Function TestUpdateSession_LazyCreation_InMemory

pkg/session/store_test.go:434–474  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

432}
433
434func TestUpdateSession_LazyCreation_InMemory(t *testing.T) {
435 t.Parallel()
436
437 store := NewInMemorySessionStore()
438
439 testAgent := agent.New("test-agent", "test prompt")
440
441 // Create a session but don't add it to the store
442 session := &Session{
443 ID: "lazy-session",
444 CreatedAt: time.Now(),
445 }
446
447 // Verify session doesn't exist yet
448 _, err := store.GetSession(t.Context(), "lazy-session")
449 require.ErrorIs(t, err, ErrNotFound)
450
451 // UpdateSession creates the session (upsert) without messages
452 // Messages must be added separately via AddMessage (like SQLite behavior)
453 err = store.UpdateSession(t.Context(), session)
454 require.NoError(t, err)
455
456 // Session exists but has no messages yet
457 retrieved, err := store.GetSession(t.Context(), "lazy-session")
458 require.NoError(t, err)
459 assert.Empty(t, retrieved.Messages)
460
461 // Add messages via AddMessage
462 _, err = store.AddMessage(t.Context(), "lazy-session", UserMessage("Hello"))
463 require.NoError(t, err)
464 _, err = store.AddMessage(t.Context(), "lazy-session", NewAgentMessage(testAgent.Name(), &chat.Message{
465 Role: chat.MessageRoleAssistant,
466 Content: "Hi there!",
467 }))
468 require.NoError(t, err)
469
470 // Now the session has 2 messages
471 retrieved, err = store.GetSession(t.Context(), "lazy-session")
472 require.NoError(t, err)
473 assert.Len(t, retrieved.Messages, 2)
474}
475
476func TestStorePermissions(t *testing.T) {
477 t.Parallel()

Callers

nothing calls this directly

Calls 11

GetSessionMethod · 0.95
UpdateSessionMethod · 0.95
AddMessageMethod · 0.95
NewFunction · 0.92
NewInMemorySessionStoreFunction · 0.85
NewAgentMessageFunction · 0.85
NowMethod · 0.80
ContextMethod · 0.80
UserMessageFunction · 0.70
NameMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected