(t *testing.T)
| 353 | } |
| 354 | |
| 355 | func TestLineageManager_RevokeDataSource(t *testing.T) { |
| 356 | lm := NewLineageManager() |
| 357 | |
| 358 | // Create memories from different sources |
| 359 | p1 := NewProvenance(SourceUserInput, "session-1") |
| 360 | if err := lm.TrackMemoryCreation("mem-1", p1, nil); err != nil { |
| 361 | t.Fatalf("TrackMemoryCreation failed: %v", err) |
| 362 | } |
| 363 | |
| 364 | p2 := NewProvenance(SourceUserInput, "session-2") |
| 365 | if err := lm.TrackMemoryCreation("mem-2", p2, nil); err != nil { |
| 366 | t.Fatalf("TrackMemoryCreation failed: %v", err) |
| 367 | } |
| 368 | |
| 369 | p3 := NewProvenance(SourceUserInput, "session-1") |
| 370 | if err := lm.TrackMemoryCreation("mem-3", p3, []string{"mem-1"}); err != nil { |
| 371 | t.Fatalf("TrackMemoryCreation failed: %v", err) |
| 372 | } |
| 373 | |
| 374 | ctx := context.Background() |
| 375 | |
| 376 | // Revoke session-1 |
| 377 | deleted, err := lm.RevokeDataSource(ctx, "session-1") |
| 378 | if err != nil { |
| 379 | t.Fatalf("RevokeDataSource() error = %v", err) |
| 380 | } |
| 381 | |
| 382 | // Should delete mem-1 and mem-3 (derived from mem-1) |
| 383 | if len(deleted) < 2 { |
| 384 | t.Errorf("Deleted %d memories, want at least 2", len(deleted)) |
| 385 | } |
| 386 | |
| 387 | // mem-2 should still exist |
| 388 | if lm.graph.memoryMetadata["mem-2"] == nil { |
| 389 | t.Error("mem-2 should still exist (different source)") |
| 390 | } |
| 391 | } |
| 392 | |
| 393 | func TestLineageManager_GetLineageDepth(t *testing.T) { |
| 394 | lm := NewLineageManager() |
nothing calls this directly
no test coverage detected