(t *testing.T)
| 235 | } |
| 236 | |
| 237 | func TestUpdateMemory(t *testing.T) { |
| 238 | t.Parallel() |
| 239 | db := setupTestDB(t) |
| 240 | ctx := t.Context() |
| 241 | |
| 242 | memory := database.UserMemory{ |
| 243 | ID: "upd-1", |
| 244 | CreatedAt: time.Now().Format(time.RFC3339), |
| 245 | Memory: "Original content", |
| 246 | Category: "fact", |
| 247 | } |
| 248 | require.NoError(t, db.AddMemory(ctx, memory)) |
| 249 | |
| 250 | t.Run("update content and category", func(t *testing.T) { |
| 251 | err := db.UpdateMemory(ctx, database.UserMemory{ |
| 252 | ID: "upd-1", |
| 253 | Memory: "Updated content", |
| 254 | Category: "decision", |
| 255 | }) |
| 256 | require.NoError(t, err) |
| 257 | |
| 258 | memories, err := db.GetMemories(ctx) |
| 259 | require.NoError(t, err) |
| 260 | require.Len(t, memories, 1) |
| 261 | assert.Equal(t, "Updated content", memories[0].Memory) |
| 262 | assert.Equal(t, "decision", memories[0].Category) |
| 263 | // CreatedAt should be preserved |
| 264 | assert.Equal(t, memory.CreatedAt, memories[0].CreatedAt) |
| 265 | }) |
| 266 | |
| 267 | t.Run("not found", func(t *testing.T) { |
| 268 | err := db.UpdateMemory(ctx, database.UserMemory{ |
| 269 | ID: "nonexistent", |
| 270 | Memory: "something", |
| 271 | }) |
| 272 | require.Error(t, err) |
| 273 | assert.ErrorIs(t, err, database.ErrMemoryNotFound) |
| 274 | }) |
| 275 | |
| 276 | t.Run("empty ID", func(t *testing.T) { |
| 277 | err := db.UpdateMemory(ctx, database.UserMemory{ |
| 278 | ID: "", |
| 279 | Memory: "something", |
| 280 | }) |
| 281 | require.Error(t, err) |
| 282 | assert.ErrorIs(t, err, database.ErrEmptyID) |
| 283 | }) |
| 284 | } |
| 285 | |
| 286 | func TestMigrationAddsCategory(t *testing.T) { |
| 287 | t.Parallel() |
nothing calls this directly
no test coverage detected