9.1.3 #67
spec test results ❌
Report | Passed | Failed | Skipped | Time |
---|---|---|---|---|
test-result-spec4.json | 705✔️ | 2❌ | 211ms | |
test-result-spec6.json | 955✔️ | 8❌ | 281ms | |
test-result-spec7.json | 1110✔️ | 18❌ | 314ms |
❌ test-result-spec4.json
707 tests were completed in 211ms with 705 passed, 2 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
test/spec/v4/draft04.test.ts | 705✔️ | 2❌ | 152ms |
❌ test/spec/v4/draft04.test.ts
draft04 additionalItems additionalItems are allowed by default
✔️ only the first item is validated
draft04 additionalItems additionalItems as false without items
✔️ ignores non-arrays
✔️ items defaults to empty schema so everything is valid
draft04 additionalItems additionalItems as schema
✔️ additional items do not match schema
✔️ additional items match schema
draft04 additionalItems additionalItems does not look in applicators, invalid case
✔️ items defined in allOf are not examined
draft04 additionalItems additionalItems does not look in applicators, valid case
✔️ items defined in allOf are not examined
draft04 additionalItems additionalItems with null instance elements
✔️ allows null elements
draft04 additionalItems array of items with no additionalItems permitted
✔️ additional items are not permitted
✔️ empty array
✔️ equal number of items present
✔️ fewer number of items present (1)
✔️ fewer number of items present (2)
draft04 additionalItems items validation adjusts the starting index for additionalItems
✔️ valid items
✔️ wrong type of second item
draft04 additionalItems when items is schema, additionalItems does nothing
✔️ all items match schema
draft04 additionalProperties additionalProperties are allowed by default
✔️ additional properties are allowed
draft04 additionalProperties additionalProperties being false does not allow other properties
✔️ an additional property is invalid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ no additional properties is valid
✔️ patternProperties are not additional properties
draft04 additionalProperties additionalProperties can exist by itself
✔️ an additional invalid property is invalid
✔️ an additional valid property is valid
draft04 additionalProperties additionalProperties does not look in applicators
✔️ properties defined in allOf are not examined
draft04 additionalProperties additionalProperties with null valued instance properties
✔️ allows null values
draft04 additionalProperties additionalProperties with schema
✔️ an additional invalid property is invalid
✔️ an additional valid property is valid
✔️ no additional properties is valid
draft04 additionalProperties non-ASCII pattern with additionalProperties
✔️ matching the pattern is valid
✔️ not matching the pattern is invalid
draft04 allOf allOf
✔️ allOf
✔️ mismatch first
✔️ mismatch second
✔️ wrong type
draft04 allOf allOf combined with anyOf, oneOf
✔️ allOf: false, anyOf: false, oneOf: false
✔️ allOf: false, anyOf: false, oneOf: true
✔️ allOf: false, anyOf: true, oneOf: false
✔️ allOf: false, anyOf: true, oneOf: true
✔️ allOf: true, anyOf: false, oneOf: false
✔️ allOf: true, anyOf: false, oneOf: true
✔️ allOf: true, anyOf: true, oneOf: false
✔️ allOf: true, anyOf: true, oneOf: true
draft04 allOf allOf simple types
✔️ mismatch one
✔️ valid
draft04 allOf allOf with base schema
✔️ mismatch base schema
✔️ mismatch both
✔️ mismatch first allOf
✔️ mismatch second allOf
✔️ valid
draft04 allOf allOf with one empty schema
✔️ any data is valid
draft04 allOf allOf with the first empty schema
✔️ number is valid
✔️ string is invalid
draft04 allOf allOf with the last empty schema
✔️ number is valid
✔️ string is invalid
draft04 allOf allOf with two empty schemas
✔️ any data is valid
draft04 allOf nested allOf, to check validation semantics
✔️ anything non-null is invalid
✔️ null is valid
draft04 anyOf anyOf
✔️ both anyOf valid
✔️ first anyOf valid
✔️ neither anyOf valid
✔️ second anyOf valid
draft04 anyOf anyOf complex types
✔️ both anyOf valid (complex)
✔️ first anyOf valid (complex)
✔️ neither anyOf valid (complex)
✔️ second anyOf valid (complex)
draft04 anyOf anyOf with base schema
✔️ both anyOf invalid
✔️ mismatch base schema
✔️ one anyOf valid
draft04 anyOf anyOf with one empty schema
✔️ number is valid
✔️ string is valid
draft04 anyOf nested anyOf, to check validation semantics
✔️ anything non-null is invalid
✔️ null is valid
draft04 bignum (optional) float comparison with high precision
✔️ comparison works for high numbers
draft04 bignum (optional) float comparison with high precision on negative numbers
✔️ comparison works for very negative numbers
draft04 bignum (optional) integer
✔️ a bignum is an integer
✔️ a negative bignum is an integer
draft04 bignum (optional) maximum integer comparison
✔️ comparison works for high numbers
draft04 bignum (optional) minimum integer comparison
✔️ comparison works for very negative numbers
draft04 bignum (optional) number
✔️ a bignum is a number
✔️ a negative bignum is a number
draft04 bignum (optional) string
✔️ a bignum is not a string
draft04 default invalid string value for default
✔️ still valid when the invalid default is used
✔️ valid when property is specified
draft04 default invalid type for default
✔️ still valid when the invalid default is used
✔️ valid when property is specified
draft04 default the default keyword does not do anything if the property is missing
✔️ an explicit property value is checked against maximum (failing)
✔️ an explicit property value is checked against maximum (passing)
✔️ missing properties are not filled in with the default
draft04 definitions validate definition against metaschema
✔️ invalid definition schema
✔️ valid definition schema
draft04 dependencies dependencies
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ missing dependency
✔️ neither
✔️ nondependant
✔️ with dependency
draft04 dependencies dependencies with escaped characters
✔️ invalid object 1
✔️ invalid object 2
✔️ invalid object 3
✔️ invalid object 4
✔️ valid object 1
✔️ valid object 2
✔️ valid object 3
draft04 dependencies multiple dependencies
✔️ missing both dependencies
✔️ missing dependency
✔️ missing other dependency
✔️ neither
✔️ nondependants
✔️ with dependencies
draft04 dependencies multiple dependencies subschema
✔️ no dependency
✔️ valid
✔️ wrong type
✔️ wrong type both
✔️ wrong type other
draft04 enum enum with 0 does not match false
✔️ false is invalid
✔️ float zero is valid
✔️ integer zero is valid
draft04 enum enum with 1 does not match true
✔️ float one is valid
✔️ integer one is valid
✔️ true is invalid
draft04 enum enum with escaped characters
✔️ another string is invalid
✔️ member 1 is valid
✔️ member 2 is valid
draft04 enum enum with false does not match 0
✔️ false is valid
✔️ float zero is invalid
✔️ integer zero is invalid
draft04 enum enum with true does not match 1
✔️ float one is invalid
✔️ integer one is invalid
✔️ true is valid
draft04 enum enums in properties
✔️ both properties are valid
✔️ missing all properties is invalid
✔️ missing optional property is valid
✔️ missing required property is invalid
✔️ wrong bar value
✔️ wrong foo value
draft04 enum heterogeneous enum validation
✔️ extra properties in object is invalid
✔️ objects are deep compared
✔️ one of the enum is valid
✔️ something else is invalid
✔️ valid object matches
draft04 enum heterogeneous enum-with-null validation
✔️ null is valid
✔️ number is valid
✔️ something else is invalid
draft04 enum nul characters in strings
✔️ do not match string lacking nul
✔️ match string with nul
draft04 enum simple enum validation
✔️ one of the enum is valid
✔️ something else is invalid
draft04 format date-time format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft04 format email format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft04 format hostname format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft04 format ipv4 format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft04 format ipv6 format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft04 format uri format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft04 format-email (optional) validation of e-mail addresses
✔️ a valid e-mail address
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an invalid e-mail address
✔️ dot after local part is not valid
✔️ dot before local part is not valid
✔️ tilde after local part is valid
✔️ tilde before local part is valid
✔️ tilde in local part is valid
✔️ two separated dots inside local part are valid
✔️ two subsequent dots inside local part are not valid
draft04 format-hostname (optional) validation of host names
✔️ a host name containing illegal characters
✔️ a host name starting with an illegal character
✔️ a host name with a component too long
✔️ a valid host name
✔️ a valid punycoded IDN hostname
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ contains underscore
✔️ ends with hyphen
✔️ ends with underscore
✔️ exceeds maximum label length
✔️ maximum label length
✔️ starts with hyphen
✔️ starts with underscore
draft04 format-ipv4 (optional) validation of IP addresses
✔️ a valid IP address
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an IP address as an integer
✔️ an IP address as an integer (decimal)
✔️ an IP address with out-of-range values
✔️ an IP address with too many components
✔️ an IP address without 4 components
✔️ invalid leading zeroes, as they are treated as octals
✔️ invalid non-ASCII '২' (a Bengali 2)
✔️ value without leading zero is valid
draft04 format-ipv6 (optional) validation of IPv6 addresses
✔️ 8 octets
✔️ a long invalid ipv6, below length limit, first
✔️ a long invalid ipv6, below length limit, second
✔️ a long valid ipv6
✔️ a valid IPv6 address
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an IPv6 address containing illegal characters
✔️ an IPv6 address with out-of-range values
✔️ an IPv6 address with too many components
✔️ insufficient octets without double colons
✔️ invalid non-ASCII '৪' (a Bengali 4)
✔️ invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion
✔️ ipv4 is not ipv6
✔️ ipv4 segment must have 4 octets
✔️ leading colons is valid
✔️ leading whitespace is invalid
✔️ missing leading octet is invalid
✔️ missing leading octet with omitted octets later
✔️ missing trailing octet is invalid
✔️ mixed format with double colons between the sections
✔️ mixed format with ipv4 section with a hex octet
✔️ mixed format with ipv4 section with octet out of range
✔️ mixed format with leading double colons (ipv4-mapped ipv6 address)
✔️ mixed format with the ipv4 section as decimal octets
✔️ netmask is not a part of ipv6 address
✔️ no colons is invalid
✔️ no digits is valid
✔️ single set of double colons in the middle is valid
✔️ trailing 4 hex symbols is valid
✔️ trailing 5 hex symbols is invalid
✔️ trailing colons is valid
✔️ trailing whitespace is invalid
✔️ triple colons is invalid
✔️ two sets of double colons is invalid
✔️ zone id is not a part of ipv6 address
draft04 format-unknown (optional) unknown format
✔️ unknown formats ignore arrays
✔️ unknown formats ignore booleans
✔️ unknown formats ignore floats
✔️ unknown formats ignore integers
✔️ unknown formats ignore nulls
✔️ unknown formats ignore objects
✔️ unknown formats ignore strings
draft04 format-uri (optional) validation of URIs
✔️ a valid mailto URI
✔️ a valid newsgroup URI
✔️ a valid puny-coded URL
✔️ a valid tel URI
✔️ a valid URL
✔️ a valid URL based on IPv4
✔️ a valid URL for a simple text file
✔️ a valid URL with anchor tag
✔️ a valid URL with anchor tag and parentheses
✔️ a valid URL with ftp scheme
✔️ a valid URL with many special characters
✔️ a valid URL with URL-encoded stuff
✔️ a valid URN
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an invalid protocol-relative URI Reference
✔️ an invalid relative URI Reference
✔️ an invalid URI
✔️ an invalid URI though valid URI reference
✔️ an invalid URI with comma in scheme
✔️ an invalid URI with spaces
✔️ an invalid URI with spaces and missing scheme
draft04 id id inside an enum is not a real identifier
✔️ exact match to enum, and type matches
✔️ match $ref to id
✔️ no match on enum or $ref to id
draft04 infinite-loop-detection evaluating the same schema location against the same data location twice is not a sign of an infinite loop
✔️ failing case
✔️ passing case
draft04 items a schema given for items
✔️ ignores non-arrays
✔️ JavaScript pseudo-array is valid
✔️ valid items
✔️ wrong type of items
draft04 items an array of schemas for items
✔️ array with additional items
✔️ correct types
✔️ empty array
✔️ incomplete array of items
✔️ JavaScript pseudo-array is valid
✔️ wrong types
draft04 items array-form items with null instance elements
✔️ allows null elements
draft04 items items and subitems
✔️ fewer items is valid
✔️ too many items
✔️ too many sub-items
✔️ valid items
✔️ wrong item
✔️ wrong sub-item
draft04 items items with null instance elements
✔️ allows null elements
draft04 items nested items
✔️ nested array with invalid type
✔️ not deep enough
✔️ valid nested array
draft04 maximum exclusiveMaximum validation
✔️ below the maximum is still valid
✔️ boundary point is invalid
draft04 maximum maximum validation
✔️ above the maximum is invalid
✔️ below the maximum is valid
✔️ boundary point is valid
✔️ ignores non-numbers
draft04 maximum maximum validation (explicit false exclusivity)
✔️ above the maximum is invalid
✔️ below the maximum is valid
✔️ boundary point is valid
✔️ ignores non-numbers
draft04 maximum maximum validation with unsigned integer
✔️ above the maximum is invalid
✔️ below the maximum is invalid
✔️ boundary point float is valid
✔️ boundary point integer is valid
draft04 maxItems maxItems validation
✔️ exact length is valid
✔️ ignores non-arrays
✔️ shorter is valid
✔️ too long is invalid
draft04 maxLength maxLength validation
✔️ exact length is valid
✔️ ignores non-strings
✔️ shorter is valid
✔️ too long is invalid
✔️ two supplementary Unicode code points is long enough
draft04 maxProperties maxProperties = 0 means the object is empty
✔️ no properties is valid
✔️ one property is invalid
draft04 maxProperties maxProperties validation
✔️ exact length is valid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ shorter is valid
✔️ too long is invalid
draft04 minimum exclusiveMinimum validation
✔️ above the minimum is still valid
✔️ boundary point is invalid
draft04 minimum minimum validation
✔️ above the minimum is valid
✔️ below the minimum is invalid
✔️ boundary point is valid
✔️ ignores non-numbers
draft04 minimum minimum validation (explicit false exclusivity)
✔️ above the minimum is valid
✔️ below the minimum is invalid
✔️ boundary point is valid
✔️ ignores non-numbers
draft04 minimum minimum validation with signed integer
✔️ boundary point is valid
✔️ boundary point with float is valid
✔️ float below the minimum is invalid
✔️ ignores non-numbers
✔️ int below the minimum is invalid
✔️ negative above the minimum is valid
✔️ positive above the minimum is valid
draft04 minItems minItems validation
✔️ exact length is valid
✔️ ignores non-arrays
✔️ longer is valid
✔️ too short is invalid
draft04 minLength minLength validation
✔️ exact length is valid
✔️ ignores non-strings
✔️ longer is valid
✔️ one supplementary Unicode code point is not long enough
✔️ too short is invalid
draft04 minProperties minProperties validation
✔️ exact length is valid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ longer is valid
✔️ too short is invalid
draft04 multipleOf by int
✔️ ignores non-numbers
✔️ int by int
✔️ int by int fail
draft04 multipleOf by number
✔️ 35 is not multiple of 1.5
✔️ 4.5 is multiple of 1.5
✔️ zero is multiple of anything
draft04 multipleOf by small number
✔️ 0.0075 is multiple of 0.0001
✔️ 0.00751 is not multiple of 0.0001
draft04 multipleOf float division = inf
✔️ invalid, but naive implementations may raise an overflow error
draft04 not forbidden property
✔️ property absent
✔️ property present
draft04 not not
✔️ allowed
✔️ disallowed
draft04 not not more complex schema
✔️ match
✔️ mismatch
✔️ other match
draft04 not not multiple types
✔️ mismatch
✔️ other mismatch
✔️ valid
draft04 oneOf nested oneOf, to check validation semantics
✔️ anything non-null is invalid
✔️ null is valid
draft04 oneOf oneOf
✔️ both oneOf valid
✔️ first oneOf valid
✔️ neither oneOf valid
✔️ second oneOf valid
draft04 oneOf oneOf complex types
✔️ both oneOf valid (complex)
✔️ first oneOf valid (complex)
✔️ neither oneOf valid (complex)
✔️ second oneOf valid (complex)
draft04 oneOf oneOf with base schema
✔️ both oneOf valid
✔️ mismatch base schema
✔️ one oneOf valid
draft04 oneOf oneOf with empty schema
✔️ both valid - invalid
✔️ one valid - valid
draft04 oneOf oneOf with missing optional property
✔️ both oneOf valid
✔️ first oneOf valid
✔️ neither oneOf valid
✔️ second oneOf valid
draft04 oneOf oneOf with required
✔️ both invalid - invalid
✔️ both valid - invalid
✔️ first valid - valid
✔️ second valid - valid
draft04 pattern pattern is not anchored
✔️ matches a substring
draft04 pattern pattern validation
✔️ a matching pattern is valid
✔️ a non-matching pattern is invalid
✔️ ignores arrays
✔️ ignores booleans
✔️ ignores floats
✔️ ignores integers
✔️ ignores null
✔️ ignores objects
draft04 patternProperties multiple simultaneous patternProperties are validated
✔️ a simultaneous match is valid
✔️ a single valid match is valid
✔️ an invalid due to both is invalid
✔️ an invalid due to one is invalid
✔️ an invalid due to the other is invalid
✔️ multiple matches is valid
draft04 patternProperties patternProperties validates properties matching a regex
✔️ a single invalid match is invalid
✔️ a single valid match is valid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ multiple invalid matches is invalid
✔️ multiple valid matches is valid
draft04 patternProperties patternProperties with null valued instance properties
✔️ allows null values
draft04 patternProperties regexes are not anchored by default and are case sensitive
✔️ non recognized members are ignored
✔️ recognized members are accounted for
✔️ regexes are case sensitive
✔️ regexes are case sensitive, 2
draft04 properties object properties validation
✔️ both properties invalid is invalid
✔️ both properties present and valid is valid
✔️ doesn't invalidate other properties
✔️ ignores arrays
✔️ ignores other non-objects
✔️ one property invalid is invalid
draft04 properties properties whose names are Javascript object property names
✔️ __proto__ not valid
✔️ all present and valid
✔️ constructor not valid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ none of the properties mentioned
✔️ toString not valid
draft04 properties properties with escaped characters
✔️ object with all numbers is valid
✔️ object with strings is invalid
draft04 properties properties with null valued instance properties
✔️ allows null values
draft04 properties properties, patternProperties, additionalProperties interaction
✔️ additionalProperty ignores property
✔️ additionalProperty invalidates others
✔️ additionalProperty validates others
✔️ patternProperty invalidates nonproperty
✔️ patternProperty invalidates property
✔️ patternProperty validates nonproperty
✔️ property invalidates property
✔️ property validates property
draft04 ref $ref prevents a sibling id from changing the base uri
✔️ $ref resolves to /definitions/base_foo, data does not validate
✔️ $ref resolves to /definitions/base_foo, data validates
draft04 ref escaped pointer ref
✔️ percent invalid
✔️ percent valid
✔️ slash invalid
✔️ slash valid
✔️ tilde invalid
✔️ tilde valid
draft04 ref id must be resolved against nearest parent, not just immediate parent
❌ non-number is invalid
Cannot read properties of undefined (reading 'const')
❌ number is valid
Cannot read properties of undefined (reading 'const')
draft04 ref Location-independent identifier
✔️ match
✔️ mismatch
draft04 ref Location-independent identifier with base URI change in subschema
✔️ match
✔️ mismatch
draft04 ref naive replacement of $ref with its destination is not correct
✔️ do not evaluate the $ref inside the enum, matching any string
✔️ match the enum exactly
draft04 ref nested refs
✔️ nested ref invalid
✔️ nested ref valid
draft04 ref property named $ref that is not a reference
✔️ property named $ref invalid
✔️ property named $ref valid
draft04 ref property named $ref, containing an actual $ref
✔️ property named $ref invalid
✔️ property named $ref valid
draft04 ref Recursive references between schemas
✔️ invalid tree
✔️ valid tree
draft04 ref ref overrides any sibling keywords
✔️ ref invalid
✔️ ref valid
✔️ ref valid, maxItems ignored
draft04 ref refs with quote
✔️ object with numbers is valid
✔️ object with strings is invalid
draft04 ref relative pointer ref to array
✔️ match array
✔️ mismatch array
draft04 ref relative pointer ref to object
✔️ match
✔️ mismatch
draft04 ref remote ref, containing refs itself
✔️ remote ref invalid
✔️ remote ref valid
draft04 ref root pointer ref
✔️ match
✔️ mismatch
✔️ recursive match
✔️ recursive mismatch
draft04 refRemote base URI change
✔️ base URI change ref invalid
✔️ base URI change ref valid
draft04 refRemote base URI change - change folder
✔️ number is valid
✔️ string is invalid
draft04 refRemote base URI change - change folder in subschema
✔️ number is valid
✔️ string is invalid
draft04 refRemote fragment within remote ref
✔️ remote fragment invalid
✔️ remote fragment valid
draft04 refRemote Location-independent identifier in remote ref
✔️ integer is valid
✔️ string is invalid
draft04 refRemote ref within remote ref
✔️ ref within ref invalid
✔️ ref within ref valid
draft04 refRemote remote ref
✔️ remote ref invalid
✔️ remote ref valid
draft04 refRemote root ref in remote ref
✔️ null is valid
✔️ object is invalid
✔️ string is valid
draft04 required required default validation
✔️ not required by default
draft04 required required properties whose names are Javascript object property names
✔️ __proto__ present
✔️ all present
✔️ constructor present
✔️ ignores arrays
✔️ ignores other non-objects
✔️ none of the properties mentioned
✔️ toString present
draft04 required required validation
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ non-present required property is invalid
✔️ present required property is valid
draft04 required required with escaped characters
✔️ object with all properties present is valid
✔️ object with some properties missing is invalid
draft04 type array type matches arrays
✔️ a boolean is not an array
✔️ a float is not an array
✔️ a string is not an array
✔️ an array is an array
✔️ an integer is not an array
✔️ an object is not an array
✔️ null is not an array
draft04 type boolean type matches booleans
✔️ a float is not a boolean
✔️ a string is not a boolean
✔️ an array is not a boolean
✔️ an empty string is not a boolean
✔️ an integer is not a boolean
✔️ an object is not a boolean
✔️ false is a boolean
✔️ null is not a boolean
✔️ true is a boolean
✔️ zero is not a boolean
draft04 type integer type matches integers
✔️ a boolean is not an integer
✔️ a float is not an integer
✔️ a string is not an integer
✔️ a string is still not an integer, even if it looks like one
✔️ an array is not an integer
✔️ an integer is an integer
✔️ an object is not an integer
✔️ null is not an integer
draft04 type multiple types can be specified in an array
✔️ a boolean is invalid
✔️ a float is invalid
✔️ a string is valid
✔️ an array is invalid
✔️ an integer is valid
✔️ an object is invalid
✔️ null is invalid
draft04 type null type matches only the null object
✔️ a float is not null
✔️ a string is not null
✔️ an array is not null
✔️ an empty string is not null
✔️ an integer is not null
✔️ an object is not null
✔️ false is not null
✔️ null is null
✔️ true is not null
✔️ zero is not null
draft04 type number type matches numbers
✔️ a boolean is not a number
✔️ a float is a number
✔️ a float with zero fractional part is a number
✔️ a string is not a number
✔️ a string is still not a number, even if it looks like one
✔️ an array is not a number
✔️ an integer is a number
✔️ an object is not a number
✔️ null is not a number
draft04 type object type matches objects
✔️ a boolean is not an object
✔️ a float is not an object
✔️ a string is not an object
✔️ an array is not an object
✔️ an integer is not an object
✔️ an object is an object
✔️ null is not an object
draft04 type string type matches strings
✔️ 1 is not a string
✔️ a boolean is not a string
✔️ a float is not a string
✔️ a string is a string
✔️ a string is still a string, even if it looks like a number
✔️ an array is not a string
✔️ an empty string is still a string
✔️ an object is not a string
✔️ null is not a string
draft04 type type as array with one item
✔️ number is invalid
✔️ string is valid
draft04 type type: array or object
✔️ array is valid
✔️ null is invalid
✔️ number is invalid
✔️ object is valid
✔️ string is invalid
draft04 type type: array, object or null
✔️ array is valid
✔️ null is valid
✔️ number is invalid
✔️ object is valid
✔️ string is invalid
draft04 uniqueItems uniqueItems validation
✔️ [0] and [false] are unique
✔️ [1] and [true] are unique
✔️ {"a": false} and {"a": 0} are unique
✔️ {"a": true} and {"a": 1} are unique
✔️ 0 and false are unique
✔️ 1 and true are unique
✔️ different objects are unique
✔️ false is not equal to zero
✔️ nested [0] and [false] are unique
✔️ nested [1] and [true] are unique
✔️ non-unique array of arrays is invalid
✔️ non-unique array of integers is invalid
✔️ non-unique array of more than two arrays is invalid
✔️ non-unique array of more than two integers is invalid
✔️ non-unique array of nested objects is invalid
✔️ non-unique array of objects is invalid
✔️ non-unique array of strings is invalid
✔️ non-unique heterogeneous types are invalid
✔️ numbers are unique if mathematically unequal
✔️ objects are non-unique despite key order
✔️ true is not equal to one
✔️ unique array of arrays is valid
✔️ unique array of integers is valid
✔️ unique array of nested objects is valid
✔️ unique array of objects is valid
✔️ unique array of strings is valid
✔️ unique heterogeneous types are valid
draft04 uniqueItems uniqueItems with an array of items
✔️ [false, false] from items array is not valid
✔️ [false, true] from items array is valid
✔️ [true, false] from items array is valid
✔️ [true, true] from items array is not valid
✔️ non-unique array extended from [false, true] is not valid
✔️ non-unique array extended from [true, false] is not valid
✔️ unique array extended from [false, true] is valid
✔️ unique array extended from [true, false] is valid
draft04 uniqueItems uniqueItems with an array of items and additionalItems=false
✔️ [false, false] from items array is not valid
✔️ [false, true] from items array is valid
✔️ [true, false] from items array is valid
✔️ [true, true] from items array is not valid
✔️ extra items are invalid even if unique
draft04 uniqueItems uniqueItems=false validation
✔️ 0 and false are unique
✔️ 1 and true are unique
✔️ false is not equal to zero
✔️ non-unique array of arrays is valid
✔️ non-unique array of integers is valid
✔️ non-unique array of nested objects is valid
✔️ non-unique array of objects is valid
✔️ non-unique heterogeneous types are valid
✔️ numbers are unique if mathematically unequal
✔️ true is not equal to one
✔️ unique array of arrays is valid
✔️ unique array of integers is valid
✔️ unique array of nested objects is valid
✔️ unique array of objects is valid
✔️ unique heterogeneous types are valid
draft04 uniqueItems uniqueItems=false with an array of items
✔️ [false, false] from items array is valid
✔️ [false, true] from items array is valid
✔️ [true, false] from items array is valid
✔️ [true, true] from items array is valid
✔️ non-unique array extended from [false, true] is valid
✔️ non-unique array extended from [true, false] is valid
✔️ unique array extended from [false, true] is valid
✔️ unique array extended from [true, false] is valid
draft04 uniqueItems uniqueItems=false with an array of items and additionalItems=false
✔️ [false, false] from items array is valid
✔️ [false, true] from items array is valid
✔️ [true, false] from items array is valid
✔️ [true, true] from items array is valid
✔️ extra items are invalid even if unique
❌ test-result-spec6.json
963 tests were completed in 281ms with 955 passed, 8 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
test/spec/v6/draft06.test.ts | 955✔️ | 8❌ | 210ms |
❌ test/spec/v6/draft06.test.ts
draft06 additionalItems additionalItems are allowed by default
✔️ only the first item is validated
draft06 additionalItems additionalItems as false without items
✔️ ignores non-arrays
✔️ items defaults to empty schema so everything is valid
draft06 additionalItems additionalItems as schema
✔️ additional items do not match schema
✔️ additional items match schema
draft06 additionalItems additionalItems does not look in applicators, invalid case
✔️ items defined in allOf are not examined
draft06 additionalItems additionalItems does not look in applicators, valid case
✔️ items defined in allOf are not examined
draft06 additionalItems additionalItems with null instance elements
✔️ allows null elements
draft06 additionalItems array of items with no additionalItems permitted
✔️ additional items are not permitted
✔️ empty array
✔️ equal number of items present
✔️ fewer number of items present (1)
✔️ fewer number of items present (2)
draft06 additionalItems items validation adjusts the starting index for additionalItems
✔️ valid items
✔️ wrong type of second item
draft06 additionalItems when items is schema, additionalItems does nothing
✔️ all items match schema
draft06 additionalProperties additionalProperties are allowed by default
✔️ additional properties are allowed
draft06 additionalProperties additionalProperties being false does not allow other properties
✔️ an additional property is invalid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ no additional properties is valid
✔️ patternProperties are not additional properties
draft06 additionalProperties additionalProperties can exist by itself
✔️ an additional invalid property is invalid
✔️ an additional valid property is valid
draft06 additionalProperties additionalProperties does not look in applicators
✔️ properties defined in allOf are not examined
draft06 additionalProperties additionalProperties with null valued instance properties
✔️ allows null values
draft06 additionalProperties additionalProperties with schema
✔️ an additional invalid property is invalid
✔️ an additional valid property is valid
✔️ no additional properties is valid
draft06 additionalProperties non-ASCII pattern with additionalProperties
✔️ matching the pattern is valid
✔️ not matching the pattern is invalid
draft06 allOf allOf
✔️ allOf
✔️ mismatch first
✔️ mismatch second
✔️ wrong type
draft06 allOf allOf combined with anyOf, oneOf
✔️ allOf: false, anyOf: false, oneOf: false
✔️ allOf: false, anyOf: false, oneOf: true
✔️ allOf: false, anyOf: true, oneOf: false
✔️ allOf: false, anyOf: true, oneOf: true
✔️ allOf: true, anyOf: false, oneOf: false
✔️ allOf: true, anyOf: false, oneOf: true
✔️ allOf: true, anyOf: true, oneOf: false
✔️ allOf: true, anyOf: true, oneOf: true
draft06 allOf allOf simple types
✔️ mismatch one
✔️ valid
draft06 allOf allOf with base schema
✔️ mismatch base schema
✔️ mismatch both
✔️ mismatch first allOf
✔️ mismatch second allOf
✔️ valid
draft06 allOf allOf with boolean schemas, all false
✔️ any value is invalid
draft06 allOf allOf with boolean schemas, all true
✔️ any value is valid
draft06 allOf allOf with boolean schemas, some false
✔️ any value is invalid
draft06 allOf allOf with one empty schema
✔️ any data is valid
draft06 allOf allOf with the first empty schema
✔️ number is valid
✔️ string is invalid
draft06 allOf allOf with the last empty schema
✔️ number is valid
✔️ string is invalid
draft06 allOf allOf with two empty schemas
✔️ any data is valid
draft06 allOf nested allOf, to check validation semantics
✔️ anything non-null is invalid
✔️ null is valid
draft06 anyOf anyOf
✔️ both anyOf valid
✔️ first anyOf valid
✔️ neither anyOf valid
✔️ second anyOf valid
draft06 anyOf anyOf complex types
✔️ both anyOf valid (complex)
✔️ first anyOf valid (complex)
✔️ neither anyOf valid (complex)
✔️ second anyOf valid (complex)
draft06 anyOf anyOf with base schema
✔️ both anyOf invalid
✔️ mismatch base schema
✔️ one anyOf valid
draft06 anyOf anyOf with boolean schemas, all false
✔️ any value is invalid
draft06 anyOf anyOf with boolean schemas, all true
✔️ any value is valid
draft06 anyOf anyOf with boolean schemas, some true
✔️ any value is valid
draft06 anyOf anyOf with one empty schema
✔️ number is valid
✔️ string is valid
draft06 anyOf nested anyOf, to check validation semantics
✔️ anything non-null is invalid
✔️ null is valid
draft06 bignum (optional) float comparison with high precision
✔️ comparison works for high numbers
draft06 bignum (optional) float comparison with high precision on negative numbers
✔️ comparison works for very negative numbers
draft06 bignum (optional) integer
✔️ a bignum is an integer
✔️ a negative bignum is an integer
draft06 bignum (optional) maximum integer comparison
✔️ comparison works for high numbers
draft06 bignum (optional) minimum integer comparison
✔️ comparison works for very negative numbers
draft06 bignum (optional) number
✔️ a bignum is a number
✔️ a negative bignum is a number
draft06 bignum (optional) string
✔️ a bignum is not a string
draft06 boolean_schema boolean schema 'false'
✔️ array is invalid
✔️ boolean false is invalid
✔️ boolean true is invalid
✔️ empty array is invalid
✔️ empty object is invalid
✔️ null is invalid
✔️ number is invalid
✔️ object is invalid
✔️ string is invalid
draft06 boolean_schema boolean schema 'true'
✔️ array is valid
✔️ boolean false is valid
✔️ boolean true is valid
✔️ empty array is valid
✔️ empty object is valid
✔️ null is valid
✔️ number is valid
✔️ object is valid
✔️ string is valid
draft06 const const validation
✔️ another type is invalid
✔️ another value is invalid
✔️ same value is valid
draft06 const const with -2.0 matches integer and float types
✔️ float -2.0 is valid
✔️ float -2.00001 is invalid
✔️ float 2.0 is invalid
✔️ integer -2 is valid
✔️ integer 2 is invalid
draft06 const const with [false] does not match [0]
✔️ [0.0] is invalid
✔️ [0] is invalid
✔️ [false] is valid
draft06 const const with [true] does not match [1]
✔️ [1.0] is invalid
✔️ [1] is invalid
✔️ [true] is valid
draft06 const const with {"a": false} does not match {"a": 0}
✔️ {"a": 0.0} is invalid
✔️ {"a": 0} is invalid
✔️ {"a": false} is valid
draft06 const const with {"a": true} does not match {"a": 1}
✔️ {"a": 1.0} is invalid
✔️ {"a": 1} is invalid
✔️ {"a": true} is valid
draft06 const const with 0 does not match other zero-like types
✔️ empty array is invalid
✔️ empty object is invalid
✔️ empty string is invalid
✔️ false is invalid
✔️ float zero is valid
✔️ integer zero is valid
draft06 const const with 1 does not match true
✔️ float one is valid
✔️ integer one is valid
✔️ true is invalid
draft06 const const with array
✔️ another array item is invalid
✔️ array with additional items is invalid
✔️ same array is valid
draft06 const const with false does not match 0
✔️ false is valid
✔️ float zero is invalid
✔️ integer zero is invalid
draft06 const const with null
✔️ not null is invalid
✔️ null is valid
draft06 const const with object
✔️ another object is invalid
✔️ another type is invalid
✔️ same object is valid
✔️ same object with different property order is valid
draft06 const const with true does not match 1
✔️ float one is invalid
✔️ integer one is invalid
✔️ true is valid
draft06 const float and integers are equal up to 64-bit representation limits
✔️ float is valid
✔️ float minus one is invalid
✔️ integer is valid
✔️ integer minus one is invalid
draft06 const nul characters in strings
✔️ do not match string lacking nul
✔️ match string with nul
draft06 contains contains keyword validation
✔️ array with item matching schema (5) is valid
✔️ array with item matching schema (6) is valid
✔️ array with two items matching schema (5, 6) is valid
✔️ array without items matching schema is invalid
✔️ empty array is invalid
✔️ not array is valid
draft06 contains contains keyword with boolean schema false
✔️ any non-empty array is invalid
✔️ empty array is invalid
✔️ non-arrays are valid
draft06 contains contains keyword with boolean schema true
✔️ any non-empty array is valid
✔️ empty array is invalid
draft06 contains contains keyword with const keyword
✔️ array with item 5 is valid
✔️ array with two items 5 is valid
✔️ array without item 5 is invalid
draft06 contains contains with null instance elements
✔️ allows null items
draft06 contains items + contains
✔️ does not match items, matches contains
✔️ matches both items and contains
✔️ matches items, does not match contains
✔️ matches neither items nor contains
draft06 default invalid string value for default
✔️ still valid when the invalid default is used
✔️ valid when property is specified
draft06 default invalid type for default
✔️ still valid when the invalid default is used
✔️ valid when property is specified
draft06 default the default keyword does not do anything if the property is missing
✔️ an explicit property value is checked against maximum (failing)
✔️ an explicit property value is checked against maximum (passing)
✔️ missing properties are not filled in with the default
draft06 definitions validate definition against metaschema
✔️ invalid definition schema
✔️ valid definition schema
draft06 dependencies dependencies
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ missing dependency
✔️ neither
✔️ nondependant
✔️ with dependency
draft06 dependencies dependencies with boolean subschemas
✔️ empty object is valid
✔️ object with both properties is invalid
✔️ object with property having schema false is invalid
✔️ object with property having schema true is valid
draft06 dependencies dependencies with empty array
✔️ empty object
✔️ non-object is valid
✔️ object with one property
draft06 dependencies dependencies with escaped characters
✔️ invalid object 1
✔️ invalid object 2
✔️ invalid object 3
✔️ invalid object 4
✔️ valid object 1
✔️ valid object 2
✔️ valid object 3
draft06 dependencies multiple dependencies
✔️ missing both dependencies
✔️ missing dependency
✔️ missing other dependency
✔️ neither
✔️ nondependants
✔️ with dependencies
draft06 dependencies multiple dependencies subschema
✔️ no dependency
✔️ valid
✔️ wrong type
✔️ wrong type both
✔️ wrong type other
draft06 enum enum with 0 does not match false
✔️ false is invalid
✔️ float zero is valid
✔️ integer zero is valid
draft06 enum enum with 1 does not match true
✔️ float one is valid
✔️ integer one is valid
✔️ true is invalid
draft06 enum enum with escaped characters
✔️ another string is invalid
✔️ member 1 is valid
✔️ member 2 is valid
draft06 enum enum with false does not match 0
✔️ false is valid
✔️ float zero is invalid
✔️ integer zero is invalid
draft06 enum enum with true does not match 1
✔️ float one is invalid
✔️ integer one is invalid
✔️ true is valid
draft06 enum enums in properties
✔️ both properties are valid
✔️ missing all properties is invalid
✔️ missing optional property is valid
✔️ missing required property is invalid
✔️ wrong bar value
✔️ wrong foo value
draft06 enum heterogeneous enum validation
✔️ extra properties in object is invalid
✔️ objects are deep compared
✔️ one of the enum is valid
✔️ something else is invalid
✔️ valid object matches
draft06 enum heterogeneous enum-with-null validation
✔️ null is valid
✔️ number is valid
✔️ something else is invalid
draft06 enum nul characters in strings
✔️ do not match string lacking nul
✔️ match string with nul
draft06 enum simple enum validation
✔️ one of the enum is valid
✔️ something else is invalid
draft06 exclusiveMaximum exclusiveMaximum validation
✔️ above the exclusiveMaximum is invalid
✔️ below the exclusiveMaximum is valid
✔️ boundary point is invalid
✔️ ignores non-numbers
draft06 exclusiveMinimum exclusiveMinimum validation
✔️ above the exclusiveMinimum is valid
✔️ below the exclusiveMinimum is invalid
✔️ boundary point is invalid
✔️ ignores non-numbers
draft06 format date-time format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format email format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format hostname format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format ipv4 format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format ipv6 format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format json-pointer format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format uri format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format uri-reference format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format uri-template format
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
draft06 format-email (optional) validation of e-mail addresses
✔️ a valid e-mail address
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an invalid e-mail address
✔️ dot after local part is not valid
✔️ dot before local part is not valid
✔️ tilde after local part is valid
✔️ tilde before local part is valid
✔️ tilde in local part is valid
✔️ two separated dots inside local part are valid
✔️ two subsequent dots inside local part are not valid
draft06 format-hostname (optional) validation of host names
✔️ a host name containing illegal characters
✔️ a host name starting with an illegal character
✔️ a host name with a component too long
✔️ a valid host name
✔️ a valid punycoded IDN hostname
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ contains underscore
✔️ ends with hyphen
✔️ ends with underscore
✔️ exceeds maximum label length
✔️ maximum label length
✔️ starts with hyphen
✔️ starts with underscore
draft06 format-ipv4 (optional) validation of IP addresses
✔️ a valid IP address
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an IP address as an integer
✔️ an IP address as an integer (decimal)
✔️ an IP address with out-of-range values
✔️ an IP address with too many components
✔️ an IP address without 4 components
✔️ invalid leading zeroes, as they are treated as octals
✔️ invalid non-ASCII '২' (a Bengali 2)
✔️ value without leading zero is valid
draft06 format-ipv6 (optional) validation of IPv6 addresses
✔️ 8 octets
✔️ a long invalid ipv6, below length limit, first
✔️ a long invalid ipv6, below length limit, second
✔️ a long valid ipv6
✔️ a valid IPv6 address
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an IPv6 address containing illegal characters
✔️ an IPv6 address with out-of-range values
✔️ an IPv6 address with too many components
✔️ insufficient octets without double colons
✔️ invalid non-ASCII '৪' (a Bengali 4)
✔️ invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion
✔️ ipv4 is not ipv6
✔️ ipv4 segment must have 4 octets
✔️ leading colons is valid
✔️ leading whitespace is invalid
✔️ missing leading octet is invalid
✔️ missing leading octet with omitted octets later
✔️ missing trailing octet is invalid
✔️ mixed format with double colons between the sections
✔️ mixed format with ipv4 section with a hex octet
✔️ mixed format with ipv4 section with octet out of range
✔️ mixed format with leading double colons (ipv4-mapped ipv6 address)
✔️ mixed format with the ipv4 section as decimal octets
✔️ netmask is not a part of ipv6 address
✔️ no colons is invalid
✔️ no digits is valid
✔️ single set of double colons in the middle is valid
✔️ trailing 4 hex symbols is valid
✔️ trailing 5 hex symbols is invalid
✔️ trailing colons is valid
✔️ trailing whitespace is invalid
✔️ triple colons is invalid
✔️ two sets of double colons is invalid
✔️ zone id is not a part of ipv6 address
draft06 format-json-pointer (optional) validation of JSON-pointers (JSON String Representation)
✔️ a valid JSON-pointer
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ not a valid JSON-pointer (~ not escaped)
✔️ not a valid JSON-pointer (isn't empty nor starts with /) #1
✔️ not a valid JSON-pointer (isn't empty nor starts with /) #2
✔️ not a valid JSON-pointer (isn't empty nor starts with /) #3
✔️ not a valid JSON-pointer (multiple characters not escaped)
✔️ not a valid JSON-pointer (some escaped, but not all) #1
✔️ not a valid JSON-pointer (some escaped, but not all) #2
✔️ not a valid JSON-pointer (URI Fragment Identifier) #1
✔️ not a valid JSON-pointer (URI Fragment Identifier) #2
✔️ not a valid JSON-pointer (URI Fragment Identifier) #3
✔️ not a valid JSON-pointer (wrong escape character) #1
✔️ not a valid JSON-pointer (wrong escape character) #2
✔️ valid JSON-pointer (- used as object member name)
✔️ valid JSON-pointer (escaped with fraction part) #1
✔️ valid JSON-pointer (escaped with fraction part) #2
✔️ valid JSON-pointer (multiple escaped characters)
✔️ valid JSON-pointer as stated in RFC 6901 #1
✔️ valid JSON-pointer as stated in RFC 6901 #10
✔️ valid JSON-pointer as stated in RFC 6901 #11
✔️ valid JSON-pointer as stated in RFC 6901 #12
✔️ valid JSON-pointer as stated in RFC 6901 #2
✔️ valid JSON-pointer as stated in RFC 6901 #3
✔️ valid JSON-pointer as stated in RFC 6901 #4
✔️ valid JSON-pointer as stated in RFC 6901 #5
✔️ valid JSON-pointer as stated in RFC 6901 #6
✔️ valid JSON-pointer as stated in RFC 6901 #7
✔️ valid JSON-pointer as stated in RFC 6901 #8
✔️ valid JSON-pointer as stated in RFC 6901 #9
✔️ valid JSON-pointer used adding to the last array position
✔️ valid JSON-pointer with empty segment
✔️ valid JSON-pointer with the last empty segment
draft06 format-unknown (optional) unknown format
✔️ unknown formats ignore arrays
✔️ unknown formats ignore booleans
✔️ unknown formats ignore floats
✔️ unknown formats ignore integers
✔️ unknown formats ignore nulls
✔️ unknown formats ignore objects
✔️ unknown formats ignore strings
draft06 format-uri (optional) validation of URIs
✔️ a valid mailto URI
✔️ a valid newsgroup URI
✔️ a valid puny-coded URL
✔️ a valid tel URI
✔️ a valid URL
✔️ a valid URL based on IPv4
✔️ a valid URL for a simple text file
✔️ a valid URL with anchor tag
✔️ a valid URL with anchor tag and parentheses
✔️ a valid URL with ftp scheme
✔️ a valid URL with many special characters
✔️ a valid URL with URL-encoded stuff
✔️ a valid URN
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an invalid protocol-relative URI Reference
✔️ an invalid relative URI Reference
✔️ an invalid URI
✔️ an invalid URI though valid URI reference
✔️ an invalid URI with comma in scheme
✔️ an invalid URI with spaces
✔️ an invalid URI with spaces and missing scheme
draft06 format-uri-reference (optional) validation of URI References
✔️ a valid protocol-relative URI Reference
✔️ a valid relative URI Reference
✔️ a valid URI
✔️ a valid URI fragment
✔️ a valid URI Reference
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an invalid URI fragment
✔️ an invalid URI Reference
draft06 format-uri-template (optional) format: uri-template
✔️ a valid relative uri-template
✔️ a valid uri-template
✔️ a valid uri-template without variables
✔️ all string formats ignore arrays
✔️ all string formats ignore booleans
✔️ all string formats ignore floats
✔️ all string formats ignore integers
✔️ all string formats ignore nulls
✔️ all string formats ignore objects
✔️ an invalid uri-template
draft06 id id inside an enum is not a real identifier
✔️ exact match to enum, and type matches
✔️ match $ref to id
✔️ no match on enum or $ref to id
draft06 id non-schema object containing a plain-name $id property
✔️ const at const_not_anchor does not match
✔️ skip traversing definition for a valid result
draft06 id non-schema object containing an $id property
✔️ const at const_not_id does not match
✔️ skip traversing definition for a valid result
draft06 infinite-loop-detection evaluating the same schema location against the same data location twice is not a sign of an infinite loop
✔️ failing case
✔️ passing case
draft06 items a schema given for items
✔️ ignores non-arrays
✔️ JavaScript pseudo-array is valid
✔️ valid items
✔️ wrong type of items
draft06 items an array of schemas for items
✔️ array with additional items
✔️ correct types
✔️ empty array
✔️ incomplete array of items
✔️ JavaScript pseudo-array is valid
✔️ wrong types
draft06 items array-form items with null instance elements
✔️ allows null elements
draft06 items items and subitems
✔️ fewer items is valid
✔️ too many items
✔️ too many sub-items
✔️ valid items
✔️ wrong item
✔️ wrong sub-item
draft06 items items with boolean schema (false)
✔️ any non-empty array is invalid
✔️ empty array is valid
draft06 items items with boolean schema (true)
✔️ any array is valid
✔️ empty array is valid
draft06 items items with boolean schemas
✔️ array with one item is valid
✔️ array with two items is invalid
✔️ empty array is valid
draft06 items nested items
✔️ nested array with invalid type
✔️ not deep enough
✔️ valid nested array
draft06 items single-form items with null instance elements
✔️ allows null elements
draft06 maximum maximum validation
✔️ above the maximum is invalid
✔️ below the maximum is valid
✔️ boundary point is valid
✔️ ignores non-numbers
draft06 maximum maximum validation with unsigned integer
✔️ above the maximum is invalid
✔️ below the maximum is invalid
✔️ boundary point float is valid
✔️ boundary point integer is valid
draft06 maxItems maxItems validation
✔️ exact length is valid
✔️ ignores non-arrays
✔️ shorter is valid
✔️ too long is invalid
draft06 maxItems maxItems validation with a decimal
✔️ shorter is valid
✔️ too long is invalid
draft06 maxLength maxLength validation
✔️ exact length is valid
✔️ ignores non-strings
✔️ shorter is valid
✔️ too long is invalid
✔️ two supplementary Unicode code points is long enough
draft06 maxLength maxLength validation with a decimal
✔️ shorter is valid
✔️ too long is invalid
draft06 maxProperties maxProperties = 0 means the object is empty
✔️ no properties is valid
✔️ one property is invalid
draft06 maxProperties maxProperties validation
✔️ exact length is valid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ shorter is valid
✔️ too long is invalid
draft06 maxProperties maxProperties validation with a decimal
✔️ shorter is valid
✔️ too long is invalid
draft06 minimum minimum validation
✔️ above the minimum is valid
✔️ below the minimum is invalid
✔️ boundary point is valid
✔️ ignores non-numbers
draft06 minimum minimum validation with signed integer
✔️ boundary point is valid
✔️ boundary point with float is valid
✔️ float below the minimum is invalid
✔️ ignores non-numbers
✔️ int below the minimum is invalid
✔️ negative above the minimum is valid
✔️ positive above the minimum is valid
draft06 minItems minItems validation
✔️ exact length is valid
✔️ ignores non-arrays
✔️ longer is valid
✔️ too short is invalid
draft06 minItems minItems validation with a decimal
✔️ longer is valid
✔️ too short is invalid
draft06 minLength minLength validation
✔️ exact length is valid
✔️ ignores non-strings
✔️ longer is valid
✔️ one supplementary Unicode code point is not long enough
✔️ too short is invalid
draft06 minLength minLength validation with a decimal
✔️ longer is valid
✔️ too short is invalid
draft06 minProperties minProperties validation
✔️ exact length is valid
✔️ ignores arrays
✔️ ignores other non-objects
✔️ ignores strings
✔️ longer is valid
✔️ too short is invalid
draft06 minProperties minProperties validation with a decimal
✔️ longer is valid
✔️ too short is invalid
draft06 multipleOf by int
✔️ ignores non-numbers
✔️ int by int
✔️ int by int fail
draft06 multipleOf by number
✔️ 35 is not multiple of 1.5
✔️ 4.5 is multiple of 1.5
✔️ zero is multiple of anything
draft06 multipleOf by small number
✔️ 0.0075 is multiple of 0.0001
✔️ 0.00751 is not multiple of 0.0001
draft06 multipleOf float division = inf
✔️ always invalid, but naive implementations may raise an overflow error
draft06 not forbidden property
✔️ property absent
Report exceeded GitHub limit of 65535 bytes and has been trimmed
Annotations
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v4/draft04.test.ts ► draft04 ref id must be resolved against nearest parent, not just immediate parent ► non-number is invalid
Failed test found in:
test-result-spec4.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft04.validate (lib/draft/index.ts:216:28)
at /home/runner/work/json-schema-library/json-schema-library/lib/features/allOf.ts:69:30
at Array.forEach (<anonymous>)
at Object.validateAllOf [as allOf] (lib/features/allOf.ts:68:18)
at /home/runner/work/json-schema-library/json-schema-library/lib/validation/type.ts:24:53
at Array.map (<anonymous>)
at Object.string (lib/validation/type.ts:24:14)
at Object.validate (lib/validate.ts:80:65)
at Draft04.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft04.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v4/draft04.test.ts:47:51)
at processImmediate (node:internal/timers:478:21)
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v4/draft04.test.ts ► draft04 ref id must be resolved against nearest parent, not just immediate parent ► number is valid
Failed test found in:
test-result-spec4.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft04.validate (lib/draft/index.ts:216:28)
at /home/runner/work/json-schema-library/json-schema-library/lib/features/allOf.ts:69:30
at Array.forEach (<anonymous>)
at Object.validateAllOf [as allOf] (lib/features/allOf.ts:68:18)
at /home/runner/work/json-schema-library/json-schema-library/lib/validation/type.ts:34:53
at Array.map (<anonymous>)
at Object.number (lib/validation/type.ts:34:14)
at Object.validate (lib/validate.ts:80:65)
at Draft04.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft04.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v4/draft04.test.ts:47:51)
at processImmediate (node:internal/timers:478:21)
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v6/draft06.test.ts ► draft06 ref refs with relative uris and defs ► invalid on inner field
Failed test found in:
test-result-spec6.json
test-result-spec6.json
test-result-spec6.json
test-result-spec6.json
test-result-spec6.json
test-result-spec6.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft06.validate (lib/draft/index.ts:216:28)
at /home/runner/work/json-schema-library/json-schema-library/lib/features/allOf.ts:69:30
at Array.forEach (<anonymous>)
at Object.validateAllOf [as allOf] (lib/features/allOf.ts:68:18)
at /home/runner/work/json-schema-library/json-schema-library/lib/draft06/validation/type.ts:19:53
at Array.map (<anonymous>)
at Object.object (lib/draft06/validation/type.ts:19:14)
at Object.validate (lib/validate.ts:80:65)
at Draft06.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft06.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v6/draft06.test.ts:35:51)
at processImmediate (node:internal/timers:478:21)
Check failure on line 36 in test/spec/v6/draft06.test.ts
github-actions / spec test results
test/spec/v6/draft06.test.ts ► draft06 ref simple URN base URI with $ref via the URN ► invalid under the URN IDed schema
Failed test found in:
test-result-spec6.json
test-result-spec6.json
Error:
expected true to equal false
Raw output
AssertionError: expected true to equal false
at Context.<anonymous> (test/spec/v6/draft06.test.ts:36:44)
at processImmediate (node:internal/timers:478:21)
Check failure on line 51 in test/spec/v7/draft07.test.ts
github-actions / spec test results
test/spec/v7/draft07.test.ts ► draft07 cross-draft (optional) refs to future drafts are processed as future drafts ► missing bar is invalid
Failed test found in:
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
Error:
expected true to equal false
Raw output
AssertionError: expected true to equal false
at Context.<anonymous> (test/spec/v7/draft07.test.ts:51:44)
at processImmediate (node:internal/timers:478:21)
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v7/draft07.test.ts ► draft07 ref $id must be resolved against nearest parent, not just immediate parent ► non-number is invalid
Failed test found in:
test-result-spec7.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft07.validate (lib/draft/index.ts:216:28)
at /home/runner/work/json-schema-library/json-schema-library/lib/features/allOf.ts:69:30
at Array.forEach (<anonymous>)
at Object.validateAllOf [as allOf] (lib/features/allOf.ts:68:18)
at /home/runner/work/json-schema-library/json-schema-library/lib/draft06/validation/type.ts:24:53
at Array.map (<anonymous>)
at Object.string (lib/draft06/validation/type.ts:24:14)
at Object.validate (lib/validate.ts:80:65)
at Draft07.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft07.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v7/draft07.test.ts:50:51)
at processImmediate (node:internal/timers:478:21)
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v7/draft07.test.ts ► draft07 ref $id must be resolved against nearest parent, not just immediate parent ► number is valid
Failed test found in:
test-result-spec7.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft07.validate (lib/draft/index.ts:216:28)
at /home/runner/work/json-schema-library/json-schema-library/lib/features/allOf.ts:69:30
at Array.forEach (<anonymous>)
at Object.validateAllOf [as allOf] (lib/features/allOf.ts:68:18)
at /home/runner/work/json-schema-library/json-schema-library/lib/draft06/validation/type.ts:34:53
at Array.map (<anonymous>)
at Object.number (lib/draft06/validation/type.ts:34:14)
at Object.validate (lib/validate.ts:80:65)
at Draft07.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft07.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v7/draft07.test.ts:50:51)
at processImmediate (node:internal/timers:478:21)
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v7/draft07.test.ts ► draft07 ref ref to else ► a non-integer is invalid due to the $ref
Failed test found in:
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft07.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft07.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v7/draft07.test.ts:50:51)
at processImmediate (node:internal/timers:478:21)
Check failure on line 50 in lib/validate.ts
github-actions / spec test results
test/spec/v7/draft07.test.ts ► draft07 ref refs with relative uris and defs ► invalid on inner field
Failed test found in:
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
test-result-spec7.json
Error:
Cannot read properties of undefined (reading 'const')
Raw output
TypeError: Cannot read properties of undefined (reading 'const')
at Object.validate (lib/validate.ts:50:16)
at Draft07.validate (lib/draft/index.ts:216:28)
at /home/runner/work/json-schema-library/json-schema-library/lib/features/allOf.ts:69:30
at Array.forEach (<anonymous>)
at Object.validateAllOf [as allOf] (lib/features/allOf.ts:68:18)
at /home/runner/work/json-schema-library/json-schema-library/lib/draft06/validation/type.ts:19:53
at Array.map (<anonymous>)
at Object.object (lib/draft06/validation/type.ts:19:14)
at Object.validate (lib/validate.ts:80:65)
at Draft07.validate (lib/draft/index.ts:216:28)
at Object.isValid (lib/isValid.ts:19:18)
at Draft07.isValid (lib/draft/index.ts:167:28)
at Context.<anonymous> (test/spec/v7/draft07.test.ts:50:51)
at processImmediate (node:internal/timers:478:21)