photoprism/internal/server/webdav_path_test.go
Michael Mayer c9f21cd965 Server: Derive WebDAV proxy test paths from proxy.PathPrefix
TestIsWebDAVPath hardcoded the "/i/" proxy prefix, so it failed when
proxy.DefaultPathPrefix changed. Build the proxy cases from proxy.PathPrefix,
the same value IsWebDAVPath uses, so they track the configured prefix.
2026-07-07 23:47:57 +00:00

35 lines
1.3 KiB
Go

package server
import (
"testing"
"github.com/photoprism/photoprism/pkg/http/proxy"
)
func TestIsWebDAVPath(t *testing.T) {
// Derive proxy paths from the configured prefix so the cases stay valid
// regardless of the proxy.PathPrefix / proxy.DefaultPathPrefix value.
tests := []struct {
name string
path string
basePaths []string
want bool
}{
{name: "RootOriginals", path: "/originals", want: true},
{name: "RootImportChild", path: "/import/folder/file.jpg", want: true},
{name: "ProxyOriginals", path: proxy.PathPrefix + "acme/originals/", want: true},
{name: "ProxyImport", path: proxy.PathPrefix + "acme/import/a.jpg", want: true},
{name: "CustomBaseOriginals", path: "/instance-a/originals/album", basePaths: []string{"/instance-a/originals", "/instance-a/import"}, want: true},
{name: "CustomBaseImport", path: "/instance-a/import", basePaths: []string{"/instance-a/originals", "/instance-a/import"}, want: true},
{name: "LibraryPath", path: "/library/browse", want: false},
{name: "ProxyNonDAV", path: proxy.PathPrefix + "acme/library", want: false},
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
if got := IsWebDAVPath(tc.path, tc.basePaths...); got != tc.want {
t.Fatalf("IsWebDAVPath(%q) = %v, want %v", tc.path, got, tc.want)
}
})
}
}