MCPcopy Index your code
hub / github.com/docker/docker-agent / TestSearchMemories

Function TestSearchMemories

pkg/memory/database/sqlite/sqlite_test.go:171–235  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

169}
170
171func TestSearchMemories(t *testing.T) {
172 t.Parallel()
173 db := setupTestDB(t)
174 ctx := t.Context()
175
176 testMemories := []database.UserMemory{
177 {ID: "1", CreatedAt: time.Now().Format(time.RFC3339), Memory: "User prefers dark mode", Category: "preference"},
178 {ID: "2", CreatedAt: time.Now().Format(time.RFC3339), Memory: "Project uses Go and React", Category: "project"},
179 {ID: "3", CreatedAt: time.Now().Format(time.RFC3339), Memory: "User likes Go for backend", Category: "preference"},
180 {ID: "4", CreatedAt: time.Now().Format(time.RFC3339), Memory: "Deploy to AWS us-east-1", Category: "project"},
181 }
182 for _, m := range testMemories {
183 require.NoError(t, db.AddMemory(ctx, m))
184 }
185
186 t.Run("single keyword", func(t *testing.T) {
187 results, err := db.SearchMemories(ctx, "Go", "")
188 require.NoError(t, err)
189 assert.Len(t, results, 2)
190 })
191
192 t.Run("multi-word AND", func(t *testing.T) {
193 results, err := db.SearchMemories(ctx, "Go backend", "")
194 require.NoError(t, err)
195 assert.Len(t, results, 1)
196 assert.Equal(t, "3", results[0].ID)
197 })
198
199 t.Run("category filter only", func(t *testing.T) {
200 results, err := db.SearchMemories(ctx, "", "preference")
201 require.NoError(t, err)
202 assert.Len(t, results, 2)
203 })
204
205 t.Run("keyword plus category", func(t *testing.T) {
206 results, err := db.SearchMemories(ctx, "Go", "project")
207 require.NoError(t, err)
208 assert.Len(t, results, 1)
209 assert.Equal(t, "2", results[0].ID)
210 })
211
212 t.Run("empty query returns all", func(t *testing.T) {
213 results, err := db.SearchMemories(ctx, "", "")
214 require.NoError(t, err)
215 assert.Len(t, results, 4)
216 })
217
218 t.Run("no matches", func(t *testing.T) {
219 results, err := db.SearchMemories(ctx, "nonexistent", "")
220 require.NoError(t, err)
221 assert.Empty(t, results)
222 })
223
224 t.Run("case insensitive", func(t *testing.T) {
225 results, err := db.SearchMemories(ctx, "go", "")
226 require.NoError(t, err)
227 assert.Len(t, results, 2)
228 })

Callers

nothing calls this directly

Calls 7

setupTestDBFunction · 0.85
ContextMethod · 0.80
NowMethod · 0.80
AddMemoryMethod · 0.65
RunMethod · 0.65
SearchMemoriesMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected