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

Function TestGetSessionSummaries

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

Source from the content-addressed store, hash-verified

171}
172
173func TestGetSessionSummaries(t *testing.T) {
174 t.Parallel()
175
176 tempDB := filepath.Join(t.TempDir(), "test_get_session_summaries.db")
177
178 store, err := NewSQLiteSessionStore(t.Context(), tempDB)
179 require.NoError(t, err)
180 defer store.(*SQLiteSessionStore).Close()
181
182 testAgent := agent.New("test-agent", "test prompt")
183
184 session1Time := time.Now().UTC().Add(-1 * time.Hour).Truncate(time.Second)
185 session2Time := time.Now().UTC().Truncate(time.Second)
186
187 session1 := &Session{
188 ID: "session-1",
189 Title: "First Session",
190 Messages: []Item{
191 NewMessageItem(NewAgentMessage(testAgent.Name(), &chat.Message{
192 Role: chat.MessageRoleAssistant,
193 Content: "A very long message that should not be loaded when getting summaries",
194 })),
195 },
196 CreatedAt: session1Time,
197 }
198
199 session2 := &Session{
200 ID: "session-2",
201 Title: "Second Session",
202 Messages: []Item{
203 NewMessageItem(NewAgentMessage(testAgent.Name(), &chat.Message{
204 Role: chat.MessageRoleAssistant,
205 Content: "Another long message that should not be loaded when getting summaries",
206 })),
207 },
208 CreatedAt: session2Time,
209 }
210
211 // Store the sessions
212 err = store.AddSession(t.Context(), session1)
213 require.NoError(t, err)
214 err = store.AddSession(t.Context(), session2)
215 require.NoError(t, err)
216
217 // Retrieve summaries (should be lightweight, without messages)
218 summaries, err := store.GetSessionSummaries(t.Context())
219 require.NoError(t, err)
220 assert.Len(t, summaries, 2)
221
222 // Summaries should be ordered by created_at DESC (most recent first)
223 assert.Equal(t, "session-2", summaries[0].ID)
224 assert.Equal(t, "Second Session", summaries[0].Title)
225 assert.Equal(t, session2Time, summaries[0].CreatedAt)
226 assert.Equal(t, 1, summaries[0].NumMessages)
227
228 assert.Equal(t, "session-1", summaries[1].ID)
229 assert.Equal(t, "First Session", summaries[1].Title)
230 assert.Equal(t, session1Time, summaries[1].CreatedAt)

Callers

nothing calls this directly

Calls 12

AddSessionMethod · 0.95
GetSessionSummariesMethod · 0.95
NewFunction · 0.92
NewSQLiteSessionStoreFunction · 0.85
NewMessageItemFunction · 0.85
NewAgentMessageFunction · 0.85
ContextMethod · 0.80
NowMethod · 0.80
CloseMethod · 0.65
AddMethod · 0.65
NameMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected