Skip to content

Commit 75335bd

Browse files
committed
test: mock USERPROFILE to prevent test pollution on Windows
In tests, mocking only HOME leaves Windows runners vulnerable to modifying actual host directories since os.UserHomeDir relies on USERPROFILE on Windows.
1 parent 702298f commit 75335bd

8 files changed

Lines changed: 9 additions & 5 deletions

File tree

cmd/17.use_test.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"context"
99
"os"
1010
"path/filepath"
11-
"runtime"
1211
"strings"
1312
"testing"
1413

@@ -103,9 +102,7 @@ func TestRunUse_Global(t *testing.T) {
103102
// HOME is used by os.UserHomeDir() on Unix.
104103
// On Windows, os.UserHomeDir() reads USERPROFILE (or HOMEDRIVE+HOMEPATH).
105104
t.Setenv("HOME", tmpDir)
106-
if runtime.GOOS == "windows" {
107-
t.Setenv("USERPROFILE", tmpDir)
108-
}
105+
t.Setenv("USERPROFILE", tmpDir)
109106

110107
cmd := useCmd
111108
cmd.SetContext(context.Background())

cmd/46.enable_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ func TestEnableCommandStructure(t *testing.T) {
2222
func TestRunEnable(t *testing.T) {
2323
tmpDir := t.TempDir()
2424
t.Setenv("HOME", tmpDir)
25+
t.Setenv("USERPROFILE", tmpDir)
2526

2627
// Create a dummy shell config
2728
err := os.WriteFile(filepath.Join(tmpDir, ".zshrc"), []byte("# init\n"), 0644)
@@ -41,6 +42,7 @@ func TestRunEnable(t *testing.T) {
4142
func TestRunEnable_All(t *testing.T) {
4243
tmpDir := t.TempDir()
4344
t.Setenv("HOME", tmpDir)
45+
t.Setenv("USERPROFILE", tmpDir)
4446

4547
err := os.WriteFile(filepath.Join(tmpDir, ".zshrc"), []byte("# init\n"), 0644)
4648
require.NoError(t, err)

cmd/47.disable_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ func TestDisableCommandStructure(t *testing.T) {
2222
func TestRunDisable(t *testing.T) {
2323
tmpDir := t.TempDir()
2424
t.Setenv("HOME", tmpDir)
25+
t.Setenv("USERPROFILE", tmpDir)
2526

2627
// Create a dummy shell config
2728
err := os.WriteFile(filepath.Join(tmpDir, ".zshrc"), []byte("# init\n# unirtm config here\n"), 0644)
@@ -41,6 +42,7 @@ func TestRunDisable(t *testing.T) {
4142
func TestRunDisable_All(t *testing.T) {
4243
tmpDir := t.TempDir()
4344
t.Setenv("HOME", tmpDir)
45+
t.Setenv("USERPROFILE", tmpDir)
4446

4547
err := os.WriteFile(filepath.Join(tmpDir, ".zshrc"), []byte("# init\n# unirtm config here\n"), 0644)
4648
require.NoError(t, err)

cmd/e2e_harness_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func (h *E2EHarness) Run(args ...string) (stdout string, stderr string, err erro
6262
h.t.Setenv("XDG_DATA_HOME", h.TmpDir)
6363
h.t.Setenv("XDG_CONFIG_HOME", h.TmpDir)
6464
h.t.Setenv("HOME", h.TmpDir)
65+
h.t.Setenv("USERPROFILE", h.TmpDir)
6566

6667
// Intercept os.Stdout and os.Stderr
6768
oldStdout := os.Stdout

internal/backend/github_token_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,6 @@ func TestFindGhHostsFile_MacosFallback(t *testing.T) {
385385
t.Setenv("GH_CONFIG_DIR", "")
386386
t.Setenv("UNIRTM_XDG_CONFIG_HOME", "")
387387
t.Setenv("MISE_XDG_CONFIG_HOME", "")
388-
t.Setenv("XDG_CONFIG_HOME", "")
389388
t.Setenv("HOME", homeDir)
390389
t.Setenv("USERPROFILE", homeDir)
391390

internal/config/loader_more_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
func TestLoader_LoadGlobal(t *testing.T) {
1515
tmpDir := t.TempDir()
1616
t.Setenv("HOME", tmpDir)
17+
t.Setenv("USERPROFILE", tmpDir)
1718
t.Setenv("XDG_CONFIG_HOME", tmpDir)
1819

1920
globalPath := GetGlobalConfigPath()

internal/config/trust_more_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
func TestTrustManager(t *testing.T) {
1313
tmpDir := t.TempDir()
1414
t.Setenv("HOME", tmpDir)
15+
t.Setenv("USERPROFILE", tmpDir)
1516
t.Setenv("XDG_CONFIG_HOME", tmpDir)
1617

1718
tm := NewTrustManager()

internal/pkg/env/env_more_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ func TestEnv_PathsFallback(t *testing.T) {
7878
// keep HOME so os.UserHomeDir works, otherwise it might panic or error
7979
homeDir, _ := os.UserHomeDir()
8080
t.Setenv("HOME", homeDir)
81+
t.Setenv("USERPROFILE", homeDir)
8182

8283
cfg := GetConfigDir()
8384
assert.NotEmpty(t, cfg)

0 commit comments

Comments
 (0)