mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-06 16:06:56 +00:00
88 lines
2.2 KiB
Go
88 lines
2.2 KiB
Go
package fs_test
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
"time"
|
|
|
|
"gotest.tools/assert"
|
|
"gotest.tools/fs"
|
|
)
|
|
|
|
func TestFromDir(t *testing.T) {
|
|
dir := fs.NewDir(t, "test-from-dir", fs.FromDir("testdata/copy-test"))
|
|
defer dir.Remove()
|
|
|
|
expected := fs.Expected(t,
|
|
fs.WithFile("1", "1\n"),
|
|
fs.WithDir("a",
|
|
fs.WithFile("1", "1\n"),
|
|
fs.WithFile("2", "2\n"),
|
|
fs.WithDir("b",
|
|
fs.WithFile("1", "1\n"))))
|
|
|
|
assert.Assert(t, fs.Equal(dir.Path(), expected))
|
|
}
|
|
|
|
func TestFromDirSymlink(t *testing.T) {
|
|
dir := fs.NewDir(t, "test-from-dir", fs.FromDir("testdata/copy-test-with-symlink"))
|
|
defer dir.Remove()
|
|
|
|
currentdir, err := os.Getwd()
|
|
assert.NilError(t, err)
|
|
|
|
link2 := filepath.FromSlash("../2")
|
|
link3 := "/some/inexistent/link"
|
|
if runtime.GOOS == "windows" {
|
|
link3 = filepath.Join(filepath.VolumeName(currentdir), link3)
|
|
}
|
|
|
|
expected := fs.Expected(t,
|
|
fs.WithFile("1", "1\n"),
|
|
fs.WithDir("a",
|
|
fs.WithFile("1", "1\n"),
|
|
fs.WithFile("2", "2\n"),
|
|
fs.WithDir("b",
|
|
fs.WithFile("1", "1\n"),
|
|
fs.WithSymlink("2", link2),
|
|
fs.WithSymlink("3", link3),
|
|
fs.WithSymlink("4", "5"),
|
|
)))
|
|
|
|
assert.Assert(t, fs.Equal(dir.Path(), expected))
|
|
}
|
|
|
|
func TestWithTimestamps(t *testing.T) {
|
|
stamp := time.Date(2011, 11, 11, 5, 55, 55, 0, time.UTC)
|
|
tmpFile := fs.NewFile(t, t.Name(), fs.WithTimestamps(stamp, stamp))
|
|
defer tmpFile.Remove()
|
|
|
|
stat, err := os.Stat(tmpFile.Path())
|
|
assert.NilError(t, err)
|
|
assert.DeepEqual(t, stat.ModTime(), stamp)
|
|
}
|
|
|
|
func TestApply(t *testing.T) {
|
|
t.Run("with file", func(t *testing.T) {
|
|
tmpFile := fs.NewFile(t, "test-update-file", fs.WithContent("contenta"))
|
|
defer tmpFile.Remove()
|
|
fs.Apply(t, tmpFile, fs.WithContent("contentb"))
|
|
content, err := ioutil.ReadFile(tmpFile.Path())
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, string(content), "contentb")
|
|
})
|
|
|
|
t.Run("with dir", func(t *testing.T) {
|
|
tmpDir := fs.NewDir(t, "test-update-dir")
|
|
defer tmpDir.Remove()
|
|
fs.Apply(t, tmpDir, fs.WithFile("file1", "contenta"))
|
|
fs.Apply(t, tmpDir, fs.WithFile("file2", "contentb"))
|
|
expected := fs.Expected(t,
|
|
fs.WithFile("file1", "contenta"),
|
|
fs.WithFile("file2", "contentb"))
|
|
assert.Assert(t, fs.Equal(tmpDir.Path(), expected))
|
|
})
|
|
}
|