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) } }