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  }