From b604027205e57806e9f44b4480cbbd19457f9b9a Mon Sep 17 00:00:00 2001 From: Christopher Allen Lane Date: Sat, 14 Feb 2026 21:05:16 -0500 Subject: [PATCH] fix: make tests pass on macOS CI runners - Resolve symlinks in temp dir paths (macOS /var -> /private/var) - Pre-create non-empty community dir to ensure clone fails reliably regardless of network access on CI runners Co-Authored-By: Claude Opus 4.6 --- internal/config/config_extended_test.go | 12 ++++++++++++ internal/installer/run_test.go | 10 ++++++++++ 2 files changed, 22 insertions(+) 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