package config import ( "log" "os" "path/filepath" "testing" ) // func TestFindAbraConfig(t *testing.T) { // wd, err := os.Getwd() // if err != nil { // log.Fatal(err) // } // tests := []struct { // Dir string // Config string // }{ // { // Dir: "testdata/abraconfig1", // Config: filepath.Join(wd, "testdata/abraconfig1/abra.yaml"), // }, // { // Dir: "testdata/abraconfig1/subdir", // Config: filepath.Join(wd, "testdata/abraconfig1/abra.yaml"), // }, // { // Dir: "testdata/abraconfig2", // Config: filepath.Join(wd, "testdata/abraconfig2/abra.yml"), // }, // { // Dir: "testdata/abraconfig2/subdir", // Config: filepath.Join(wd, "testdata/abraconfig2/abra.yml"), // }, // { // Dir: "testdata", // Config: "", // }, // } // // for _, tc := range tests { // t.Run(tc.Dir, func(t *testing.T) { // config := findAbraConfig(tc.Dir) // if config != tc.Config { // t.Errorf("\nwant: %s\ngot: %s", tc.Config, config) // } // }) // } // } func TestLoadAbraConfigGetAbraDir(t *testing.T) { wd, err := os.Getwd() if err != nil { log.Fatal(err) } // t.Run("default", func(t *testing.T) { // cfg := LoadAbraConfig() // wantAbraDir := os.ExpandEnv("$HOME/.abra") // if cfg.GetAbraDir() != wantAbraDir { // t.Errorf("\nwant: %s\ngot: %s", wantAbraDir, cfg.GetAbraDir()) // } // }) t.Run("from config file", func(t *testing.T) { t.Cleanup(func() { os.Chdir(wd) }) err = os.Chdir(filepath.Join(wd, "testdata/abraconfig1")) if err != nil { log.Fatal(err) } cfg := LoadAbraConfig() log.Println(cfg.GetAbraDir()) wantAbraDir := filepath.Join(wd, "testdata/abraconfig1/abra.yaml/foobar") if cfg.GetAbraDir() != wantAbraDir { t.Errorf("\nwant: %s\ngot: %s", wantAbraDir, cfg.GetAbraDir()) } t.Fatal() }) // t.Run("default when config file is empty", func(t *testing.T) { // t.Cleanup(func() { os.Chdir(wd) }) // err := os.Chdir(filepath.Join(wd, "testdata/abraconfig2")) // if err != nil { // log.Fatal(err) // } // // cfg := LoadAbraConfig() // wantAbraDir := os.ExpandEnv("$HOME/.abra") // if cfg.GetAbraDir() != wantAbraDir { // t.Errorf("\nwant: %s\ngot: %s", wantAbraDir, cfg.GetAbraDir()) // } // }) // // t.Run("from env variable", func(t *testing.T) { // t.Setenv("ABRA_DIR", "foo") // cfg := LoadAbraConfig() // wantAbraDir := "foo" // if cfg.GetAbraDir() != wantAbraDir { // t.Errorf("\nwant: %s\ngot: %s", wantAbraDir, cfg.GetAbraDir()) // } // }) }