github.com/mithrandie/csvq@v1.18.1/lib/option/environment_test.go (about) 1 package option 2 3 import ( 4 "os" 5 "path/filepath" 6 "reflect" 7 "testing" 8 9 "github.com/mitchellh/go-homedir" 10 ) 11 12 func TestGetConfigDirFilePath(t *testing.T) { 13 oldConfigHome := os.Getenv(XDGConfigHomeEnvName) 14 defer func() { 15 _ = os.Setenv(XDGConfigHomeEnvName, oldConfigHome) 16 }() 17 18 pwd, _ := os.Getwd() 19 home, _ := homedir.Dir() 20 xdgConfigHome := filepath.Join("home", "mithrandie") 21 _ = os.Setenv(XDGConfigHomeEnvName, xdgConfigHome) 22 23 filename := "file.txt" 24 expect := []string{ 25 filepath.Join(xdgConfigHome, CSVQConfigDir, filename), 26 filepath.Join(home, string(HiddenPrefix)+filename), 27 filepath.Join(home, string(HiddenPrefix)+CSVQConfigDir, filename), 28 filepath.Join(pwd, filename), 29 } 30 result := GetSpecialFilePath(filename) 31 if !reflect.DeepEqual(result, expect) { 32 t.Errorf("result = %v, want %v", result, expect) 33 } 34 35 filename = "" 36 expect = []string{ 37 filepath.Join(xdgConfigHome, CSVQConfigDir), 38 home, 39 filepath.Join(home, string(HiddenPrefix)+CSVQConfigDir), 40 filepath.Join(pwd), 41 } 42 result = GetSpecialFilePath(filename) 43 if !reflect.DeepEqual(result, expect) { 44 t.Errorf("result = %v, want %v", result, expect) 45 } 46 47 _ = os.Unsetenv(XDGConfigHomeEnvName) 48 expect = []string{ 49 filepath.Join(home, DefaultXDGConfigDir, CSVQConfigDir, filename), 50 filepath.Join(home, string(HiddenPrefix)+filename), 51 filepath.Join(home, string(HiddenPrefix)+CSVQConfigDir, filename), 52 filepath.Join(pwd, filename), 53 } 54 result = GetSpecialFilePath(filename) 55 if !reflect.DeepEqual(result, expect) { 56 t.Errorf("result = %v, want %v", result, expect) 57 } 58 }