(t *testing.T)
| 520 | } |
| 521 | |
| 522 | func TestScanDeletedGitDirEmitsRemoved(t *testing.T) { |
| 523 | t.Parallel() |
| 524 | |
| 525 | repoDir := initTestRepo(t) |
| 526 | logger := slogtest.Make(t, nil) |
| 527 | |
| 528 | h := agentgit.NewHandler(logger) |
| 529 | |
| 530 | dirtyFile := filepath.Join(repoDir, "dirty.go") |
| 531 | require.NoError(t, os.WriteFile(dirtyFile, []byte("package dirty\n"), 0o600)) |
| 532 | |
| 533 | h.Subscribe([]string{dirtyFile}) |
| 534 | ctx := context.Background() |
| 535 | |
| 536 | msg1 := h.Scan(ctx) |
| 537 | require.NotNil(t, msg1) |
| 538 | |
| 539 | // Remove only the .git directory (repo root still exists). |
| 540 | require.NoError(t, os.RemoveAll(filepath.Join(repoDir, ".git"))) |
| 541 | |
| 542 | msg2 := h.Scan(ctx) |
| 543 | require.NotNil(t, msg2) |
| 544 | require.Len(t, msg2.Repositories, 1) |
| 545 | require.True(t, msg2.Repositories[0].Removed, |
| 546 | "removing .git dir should trigger removal") |
| 547 | } |
| 548 | |
| 549 | func TestScanDeletedWorktreeGitdirEmitsRemoved(t *testing.T) { |
| 550 | t.Parallel() |
nothing calls this directly
no test coverage detected