photoprism/pkg/fs/cache_test.go

52 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)
})
}