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

Function TestStoreMultipleAgents

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

Source from the content-addressed store, hash-verified

70}
71
72func TestStoreMultipleAgents(t *testing.T) {
73 t.Parallel()
74
75 tempDB := filepath.Join(t.TempDir(), "test_store_multi.db")
76
77 store, err := NewSQLiteSessionStore(t.Context(), tempDB)
78 require.NoError(t, err)
79 defer store.(*SQLiteSessionStore).Close()
80
81 agent1 := agent.New("agent-1", "agent 1 prompt")
82 agent2 := agent.New("agent-2", "agent 2 prompt")
83
84 session := &Session{
85 ID: "multi-agent-session",
86 CreatedAt: time.Now(),
87 Messages: []Item{
88 NewMessageItem(UserMessage("Start conversation")),
89 NewMessageItem(NewAgentMessage(agent1.Name(), &chat.Message{
90 Role: chat.MessageRoleAssistant,
91 Content: "Response from agent 1",
92 })),
93 NewMessageItem(NewAgentMessage(agent2.Name(), &chat.Message{
94 Role: chat.MessageRoleAssistant,
95 Content: "Response from agent 2",
96 })),
97 },
98 }
99
100 // Store the session
101 err = store.AddSession(t.Context(), session)
102 require.NoError(t, err)
103
104 // Retrieve the session
105 retrievedSession, err := store.GetSession(t.Context(), "multi-agent-session")
106 require.NoError(t, err)
107 require.NotNil(t, retrievedSession)
108
109 assert.Len(t, retrievedSession.Messages, 3)
110
111 // First message should be user message with empty agent name
112 assert.Empty(t, retrievedSession.Messages[0].Message.AgentName)
113
114 // Second message should have agent-1 name
115 assert.Equal(t, "agent-1", retrievedSession.Messages[1].Message.AgentName)
116 assert.Equal(t, "Response from agent 1", retrievedSession.Messages[1].Message.Message.Content)
117
118 // Third message should have agent-2 name
119 assert.Equal(t, "agent-2", retrievedSession.Messages[2].Message.AgentName)
120 assert.Equal(t, "Response from agent 2", retrievedSession.Messages[2].Message.Message.Content)
121}
122
123func TestGetSessions(t *testing.T) {
124 t.Parallel()

Callers

nothing calls this directly

Calls 12

AddSessionMethod · 0.95
GetSessionMethod · 0.95
NewFunction · 0.92
NewSQLiteSessionStoreFunction · 0.85
NewMessageItemFunction · 0.85
NewAgentMessageFunction · 0.85
ContextMethod · 0.80
NowMethod · 0.80
UserMessageFunction · 0.70
CloseMethod · 0.65
NameMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected