(t *testing.T)
| 171 | } |
| 172 | |
| 173 | func 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) |
nothing calls this directly
no test coverage detected