github.com/wawandco/oxpecker@v1.5.7-0.20210910201653-5958d4afdd89/internal/info/rootfolder_test.go (about) 1 package info 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 ) 9 10 func Test_RootFolder(t *testing.T) { 11 td := t.TempDir() 12 err := os.Chdir(td) 13 if err != nil { 14 t.Fatal(err) 15 } 16 17 file := `module wawandco/something` 18 err = ioutil.WriteFile("go.mod", []byte(file), 0444) 19 if err != nil { 20 t.Fatal(err) 21 } 22 23 t.Run("CurrentDir", func(t *testing.T) { 24 folder := RootFolder() 25 wd, err := os.Getwd() 26 if err != nil { 27 t.Fatal(err) 28 } 29 30 if folder != wd { 31 t.Fatalf("Should return `%v` and got `%v`", wd, folder) 32 } 33 }) 34 35 t.Run("InnerFolder", func(t *testing.T) { 36 wd, err := os.Getwd() 37 if err != nil { 38 t.Fatal(err) 39 } 40 41 inner := filepath.Join(wd, "inner", "folder") 42 43 err = os.MkdirAll(inner, 0777) 44 if err != nil { 45 t.Fatal(err) 46 } 47 48 err = os.Chdir(inner) 49 if err != nil { 50 t.Fatal(err) 51 } 52 53 folder := RootFolder() 54 if folder != wd { 55 t.Fatalf("Should return `%v` and got `%v`", td, folder) 56 } 57 }) 58 59 t.Run("Not Found", func(t *testing.T) { 60 td := t.TempDir() 61 err := os.Chdir(td) 62 if err != nil { 63 t.Fatal(err) 64 } 65 66 folder := RootFolder() 67 if folder != "" { 68 t.Fatalf("Should return `%v` and got `%v`", td, folder) 69 } 70 }) 71 }