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  }