Files
AAA da47189fc3 refactor: unify Go runtime and audited frontend
Squash integration of the reviewed Go core, frontend audit fixes, release tooling, and deployment hygiene. CI passed all Server/Client jobs.
2026-09-06 23:26:01 +08:00

36 lines
1.0 KiB
Go

package webassets
import (
"io/fs"
"testing"
)
// TestFSTracksIndexHTML holds whether or not a Vite build is present: FS() must
// be non-nil exactly when dist/index.html is embedded.
func TestFSTracksIndexHTML(t *testing.T) {
_, err := fs.Stat(embedded, "dist/index.html")
assets := FS()
switch {
case err == nil && assets == nil:
t.Fatal("dist/index.html is embedded but FS() returned nil")
case err != nil && assets != nil:
t.Fatalf("dist/index.html is absent (%v) but FS() returned a file system", err)
case assets == nil:
t.Log("no build embedded: the app serves the API only")
return
}
if _, err := fs.Stat(assets, "index.html"); err != nil {
t.Fatalf("index.html is not reachable through FS(): %v", err)
}
}
// TestGitkeepIsEmbedded pins the `all:` prefix: without it the package does not
// build on a checkout whose dist holds only the dot-prefixed marker.
func TestGitkeepIsEmbedded(t *testing.T) {
if _, err := fs.Stat(embedded, "dist/.gitkeep"); err != nil {
t.Fatalf("dist/.gitkeep must stay tracked and embedded: %v", err)
}
}