diff --git a/internal/config/config_extended_test.go b/internal/config/config_extended_test.go index 4d7b33f..ac82cb7 100644 --- a/internal/config/config_extended_test.go +++ b/internal/config/config_extended_test.go @@ -39,6 +39,12 @@ func TestConfigLocalCheatpath(t *testing.T) { } defer os.RemoveAll(tempDir) + // Resolve symlinks in temp dir path (macOS /var -> /private/var) + tempDir, err = filepath.EvalSymlinks(tempDir) + if err != nil { + t.Fatalf("failed to resolve temp dir symlinks: %v", err) + } + // Save current working directory oldCwd, err := os.Getwd() if err != nil { @@ -106,6 +112,12 @@ func TestConfigSymlinkResolution(t *testing.T) { } defer os.RemoveAll(tempDir) + // Resolve symlinks in temp dir path (macOS /var -> /private/var) + tempDir, err = filepath.EvalSymlinks(tempDir) + if err != nil { + t.Fatalf("failed to resolve temp dir symlinks: %v", err) + } + // Create target directory targetDir := filepath.Join(tempDir, "target") err = os.Mkdir(targetDir, 0755) diff --git a/internal/installer/run_test.go b/internal/installer/run_test.go index 18149b6..889333d 100644 --- a/internal/installer/run_test.go +++ b/internal/installer/run_test.go @@ -78,6 +78,16 @@ cheatpaths: }, } + // Pre-create a non-empty community dir so PlainClone fails reliably + // (otherwise, on CI runners with network access, the clone succeeds) + cloneBlocker := filepath.Join(tempDir, "conf2", "cheatsheets", "community") + if err := os.MkdirAll(cloneBlocker, 0755); err != nil { + t.Fatalf("failed to create clone blocker dir: %v", err) + } + if err := os.WriteFile(filepath.Join(cloneBlocker, ".gitkeep"), []byte(""), 0644); err != nil { + t.Fatalf("failed to write clone blocker file: %v", err) + } + for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { // Create stdin pipe