github.com/wtfutil/wtf@v0.43.0/utils/homedir_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func Test_ExpandHomeDir(t *testing.T) {
    10  	tests := []struct {
    11  		name             string
    12  		path             string
    13  		expectedStart    string
    14  		expectedContains string
    15  		expectedError    error
    16  	}{
    17  		{
    18  			name:             "with empty path",
    19  			path:             "",
    20  			expectedStart:    "",
    21  			expectedContains: "",
    22  			expectedError:    nil,
    23  		},
    24  		{
    25  			name:             "with relative path",
    26  			path:             "~/test",
    27  			expectedStart:    "/",
    28  			expectedContains: "/test",
    29  			expectedError:    nil,
    30  		},
    31  		{
    32  			name:             "with absolute path",
    33  			path:             "/Users/test",
    34  			expectedStart:    "/",
    35  			expectedContains: "/test",
    36  			expectedError:    nil,
    37  		},
    38  	}
    39  
    40  	for _, tt := range tests {
    41  		t.Run(tt.name, func(t *testing.T) {
    42  			actual, err := ExpandHomeDir(tt.path)
    43  
    44  			if len(tt.path) > 0 {
    45  				assert.Equal(t, tt.expectedStart, string(actual[0]))
    46  			}
    47  
    48  			assert.Contains(t, actual, tt.expectedContains)
    49  			assert.Equal(t, tt.expectedError, err)
    50  		})
    51  	}
    52  }