4140847a15
Коммитим internal/web/dist/index.html как минимальный плейсхолдер, чтобы //go:embed all:dist находил совпадения на чистом клоне без npm/`make web` (CRITICAL: go build ./... падал с "pattern all:dist: no matching files found"). .gitignore теперь игнорирует только реальные build-ассеты (internal/web/dist/* кроме index.html); `make web` перезаписывает плейсхолдер настоящей сборкой. Также чинит MEDIUM: голый /api (без хвостового слэша) уходил в SPA-fallback вместо API-роутера — вынесен isAPIPath() с явной проверкой path == "/api", покрыт TestIsAPIPath. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BwxdSt4reTm7Dj1oxRvpP3
23 lines
394 B
Go
23 lines
394 B
Go
package main
|
|
|
|
import "testing"
|
|
|
|
func TestIsAPIPath(t *testing.T) {
|
|
cases := []struct {
|
|
path string
|
|
want bool
|
|
}{
|
|
{"/api", true},
|
|
{"/api/", true},
|
|
{"/api/domains", true},
|
|
{"/", false},
|
|
{"/domains/xyz", false},
|
|
{"/apix", false},
|
|
}
|
|
for _, c := range cases {
|
|
if got := isAPIPath(c.path); got != c.want {
|
|
t.Errorf("isAPIPath(%q) = %v, want %v", c.path, got, c.want)
|
|
}
|
|
}
|
|
}
|