github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/utils/helper/path_test.go (about) 1 package helper 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestHelper_GetAbsPath(t *testing.T) { 13 path, err := GetAbsPath("..", "..") 14 assert.NoError(t, err) 15 gopath := os.ExpandEnv("${GOPATH}") 16 rootPath, err := GetAbsPath(gopath, "src", "github.com", "caos", "boom") 17 assert.NoError(t, err) 18 19 assert.Equal(t, path, rootPath) 20 } 21 22 func TestHelper_GetAbsPath_Nonexistent(t *testing.T) { 23 path, err := GetAbsPath("nonexistent", "alsononexistent") 24 assert.NoError(t, err) 25 assert.NotEmpty(t, path) 26 27 path, err = GetAbsPath("nonexistent") 28 assert.NoError(t, err) 29 assert.NotEmpty(t, path) 30 } 31 32 func TestHelper_RecreatePath(t *testing.T) { 33 root := "/tmp/existent" 34 err := os.MkdirAll(root, os.ModePerm) 35 assert.NoError(t, err) 36 assert.DirExists(t, root) 37 38 err = ioutil.WriteFile("/tmp/existent/test.txt", []byte("test"), 0644) 39 assert.NoError(t, err) 40 files := getFiles(root) 41 assert.Len(t, files, 1) 42 43 err = RecreatePath(root) 44 assert.NoError(t, err) 45 assert.DirExists(t, root) 46 47 files = getFiles(root) 48 assert.Len(t, files, 0) 49 50 err = os.RemoveAll(root) 51 assert.NoError(t, err) 52 } 53 54 func TestHelper_RecreatePath_nonexistent(t *testing.T) { 55 root := "/tmp/nonexistent" 56 57 err := RecreatePath(root) 58 assert.NoError(t, err) 59 assert.DirExists(t, root) 60 61 files := getFiles(root) 62 assert.Len(t, files, 0) 63 64 err = os.RemoveAll(root) 65 assert.NoError(t, err) 66 } 67 68 func getFiles(root string) []string { 69 var files []string 70 71 err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { 72 if !info.IsDir() { 73 files = append(files, path) 74 } 75 return nil 76 }) 77 if err != nil { 78 panic(err) 79 } 80 return files 81 }