Files
go-sip/contracts/schema_consistency_test.go
T

39 lines
1.0 KiB
Go

package contracts
import (
"io/fs"
"strings"
"testing"
)
func TestEverySharedSchemaCompilesOffline(t *testing.T) {
files, err := fs.Glob(Files, "schema/*.schema.json")
if err != nil {
t.Fatal(err)
}
if len(files) < 15 {
t.Fatalf("missing shared schemas: %d", len(files))
}
for _, file := range files {
t.Run(file, func(t *testing.T) {
if _, err := CompileCurrent(strings.TrimPrefix(file, "schema/")); err != nil {
t.Fatal(err)
}
})
}
}
func TestCompileCurrentRejectsInvalidNames(t *testing.T) {
for _, name := range []string{"", "../mq.schema.json", "mq-topology.json", "manifest.json", "missing.schema.json"} {
if _, err := CompileCurrent(name); err == nil {
t.Fatalf("accepted invalid schema %q", name)
}
}
}
func TestUnregisteredSchemaReferencesCannotReachNetwork(t *testing.T) {
if _, err := (offlineSchemaLoader{}).Load("https://example.invalid/schema.json"); err == nil || !strings.Contains(err.Error(), "network loading is disabled") {
t.Fatalf("unregistered reference did not fail explicitly: %v", err)
}
}