(t *testing.T)
| 284 | } |
| 285 | |
| 286 | func TestMigrationAddsCategory(t *testing.T) { |
| 287 | t.Parallel() |
| 288 | tmpFile := t.TempDir() + "/migrate.db" |
| 289 | |
| 290 | // Create a DB with the old schema (no category column) |
| 291 | db1, err := NewMemoryDatabase(tmpFile) |
| 292 | require.NoError(t, err) |
| 293 | memDB1 := db1.(*MemoryDatabase) |
| 294 | |
| 295 | // Add a memory (which now includes category column from migration) |
| 296 | err = db1.AddMemory(t.Context(), database.UserMemory{ |
| 297 | ID: "old-1", |
| 298 | CreatedAt: time.Now().Format(time.RFC3339), |
| 299 | Memory: "Old memory without category", |
| 300 | }) |
| 301 | require.NoError(t, err) |
| 302 | require.NoError(t, memDB1.Close()) |
| 303 | |
| 304 | // Reopen - migration should be idempotent |
| 305 | db2, err := NewMemoryDatabase(tmpFile) |
| 306 | require.NoError(t, err) |
| 307 | memDB2 := db2.(*MemoryDatabase) |
| 308 | defer func() { require.NoError(t, memDB2.Close()) }() |
| 309 | |
| 310 | memories, err := db2.GetMemories(t.Context()) |
| 311 | require.NoError(t, err) |
| 312 | require.Len(t, memories, 1) |
| 313 | assert.Equal(t, "Old memory without category", memories[0].Memory) |
| 314 | assert.Empty(t, memories[0].Category) |
| 315 | } |
| 316 | |
| 317 | func TestDatabaseOperationsWithCanceledContext(t *testing.T) { |
| 318 | t.Parallel() |
nothing calls this directly
no test coverage detected