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  }