51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package fs
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCachePath(t *testing.T) {
|
|
t.Run("hash too short", func(t *testing.T) {
|
|
result, err := CachePath("/foo/bar", "123", "baz", false)
|
|
|
|
assert.Equal(t, "", result)
|
|
assert.EqualError(t, err, "cache: hash '123' is too short")
|
|
})
|
|
|
|
t.Run("namespace empty", func(t *testing.T) {
|
|
result, err := CachePath("/foo/bar", "123hjfju567695", "", false)
|
|
|
|
assert.Equal(t, "", result)
|
|
assert.EqualError(t, err, "cache: namespace for hash '123hjfju567695' is empty")
|
|
})
|
|
|
|
t.Run("1234567890abcdef", func(t *testing.T) {
|
|
result, err := CachePath("/foo/bar", "1234567890abcdef", "baz", false)
|
|
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
assert.Equal(t, "/foo/bar/baz/1/2/3", result)
|
|
})
|
|
|
|
t.Run("create", func(t *testing.T) {
|
|
ns := "pkg_fs_test"
|
|
result, err := CachePath(os.TempDir(), "1234567890abcdef", ns, true)
|
|
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
expected := filepath.Join(os.TempDir(), ns, "1", "2", "3")
|
|
|
|
assert.Equal(t, expected, result)
|
|
assert.DirExists(t, expected)
|
|
|
|
_ = os.Remove(expected)
|
|
})
|
|
}
|