Files
photoprism/internal/service/cluster/theme/version_test.go
2025-10-19 12:44:21 +02:00

42 lines
1.1 KiB
Go

package theme
import (
"os"
"path/filepath"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/photoprism/photoprism/pkg/fs"
)
func TestDetectVersion(t *testing.T) {
t.Run("VersionFilePreferred", func(t *testing.T) {
dir := t.TempDir()
assert.NoError(t, os.WriteFile(filepath.Join(dir, fs.VersionTxtFile), []byte(" 1.2.3 \n"), fs.ModeFile))
assert.NoError(t, os.WriteFile(filepath.Join(dir, fs.AppJsFile), []byte("// app"), fs.ModeFile))
got, err := DetectVersion(dir)
assert.NoError(t, err)
assert.Equal(t, "1.2.3", got)
})
t.Run("FallsBackToAppJS", func(t *testing.T) {
dir := t.TempDir()
appPath := filepath.Join(dir, fs.AppJsFile)
assert.NoError(t, os.WriteFile(appPath, []byte("// app"), fs.ModeFile))
want := time.Now().UTC().Truncate(time.Second)
assert.NoError(t, os.Chtimes(appPath, want, want))
got, err := DetectVersion(dir)
assert.NoError(t, err)
assert.Equal(t, want.Format(time.RFC3339), got)
})
t.Run("MissingAppJS", func(t *testing.T) {
dir := t.TempDir()
_, err := DetectVersion(dir)
assert.Error(t, err)
})
}