github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/osutils/user/user_test.go (about) 1 package user 2 3 import ( 4 "os" 5 "runtime" 6 "testing" 7 8 "github.com/ActiveState/cli/internal/constants" 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestUserHome(t *testing.T) { 14 osHomeDir, err := os.UserHomeDir() 15 require.NoError(t, err) 16 17 userHomeDir, err := HomeDir() 18 require.NoError(t, err) 19 assert.Equal(t, userHomeDir, osHomeDir) 20 } 21 22 func TestActiveStateHome(t *testing.T) { 23 os.Setenv(constants.HomeEnvVarName, "override") 24 defer func() { os.Unsetenv(constants.HomeEnvVarName) }() 25 userHomeDir, err := HomeDir() 26 require.NoError(t, err) 27 assert.Equal(t, userHomeDir, "override") 28 } 29 30 func TestNoHome(t *testing.T) { 31 osHomeDir, err := os.UserHomeDir() 32 require.NoError(t, err) 33 34 if runtime.GOOS != "windows" { 35 os.Unsetenv("HOME") 36 defer func() { os.Setenv("HOME", osHomeDir) }() 37 } else { 38 os.Unsetenv("USERPROFILE") 39 defer func() { os.Setenv("USERPROFILE", osHomeDir) }() 40 } 41 _, err = HomeDir() 42 assert.Error(t, err) 43 assert.Contains(t, err.Error(), "HOME environment variable is unset") 44 }