| // This test tests the conversion and ordering of $defs. |
| |
| #noverify |
| |
| -- definition.json -- |
| { |
| "$schema": "http://json-schema.org/draft-07/schema#", |
| |
| "$id": "http://cuelang.org/go/encoding/openapi/testdata/order.json", |
| |
| "$defs": { |
| "address": { |
| "type": "object", |
| "properties": { |
| "city": { "type": "string" } |
| } |
| }, |
| "int": { |
| "type": "integer" |
| }, |
| "string-int": { |
| "type": [ "integer", "string" ] |
| }, |
| "person": { |
| "type": "object", |
| "properties": { |
| "name": { "type": "string" }, |
| "children": { |
| "type": "object", |
| "properties": { |
| "x": { "$ref": "http://acme.com/external.json#/properties/foo" }, |
| |
| "a": { "$ref": "#/$defs/int" }, |
| "b": { "$ref": "http://cuelang.org/person.json#/$defs/int" }, |
| "c": { "$ref": "http://cuelang.org/go/encoding/openapi/testdata/order.json#/$defs/int" }, |
| "d": { "$ref": "http://cuelang.org/go/encoding/openapi/testdata/order.json#/$defs/address" }, |
| "e": { "$ref": "http://cuelang.org/go/encoding/openapi/testdata/order.json#/$defs/string-int" }, |
| "f": { "$ref": "http://cuelang.org/person.json" }, |
| "g": { "$ref": "http://acme.com/external.json#/definitions/foo" }, |
| "h": { "$ref": "http://acme.com/external.json#/properties/foo" }, |
| "i": { "$ref": "http://acme.com/external.json" }, |
| "j": { "$ref": "http://acme.com/external-foo.json" }, |
| "k": { "$ref": "http://acme.com/external-bar.json" }, |
| "z": {} |
| } |
| } |
| }, |
| "$id": "http://cuelang.org/person.json", |
| "$defs": { |
| "int": { |
| "type": "integer" |
| } |
| } |
| } |
| }, |
| |
| "type": "object", |
| |
| "properties": { |
| "person": { "$ref": "#/$defs/person" }, |
| "billing_address": { "$ref": "#/$defs/address" }, |
| "shipping_address": { "$ref": "#/$defs/address" } |
| } |
| } |
| |
| -- out.cue -- |
| import ( |
| "acme.com/external.json:external" |
| "acme.com/external-foo.json:schema" |
| schema_5 "acme.com/external-bar.json:schema" |
| ) |
| |
| @jsonschema(schema="http://json-schema.org/draft-07/schema#") |
| @jsonschema(id="http://cuelang.org/go/encoding/openapi/testdata/order.json") |
| person?: #person |
| billing_address?: #address |
| shipping_address?: #address |
| |
| #address: { |
| city?: string |
| ... |
| } |
| |
| #int_1=#int: int |
| |
| #: "string-int": int | string |
| |
| #person: { |
| @jsonschema(id="http://cuelang.org/person.json") |
| name?: string |
| children?: { |
| x?: external.foo |
| a?: #int |
| b?: #int |
| c?: #int_1 |
| d?: #address |
| e?: #["string-int"] |
| f?: #person |
| g?: external.#foo |
| h?: external.foo |
| i?: external |
| j?: schema |
| k?: schema_5 |
| z?: _ |
| ... |
| } |
| |
| #int: int |
| ... |
| } |
| ... |