39 lines
1.0 KiB
Go
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)
|
|
}
|
|
}
|