Skip to content

9.1.3

9.1.3 #67

GitHub Actions / spec test results failed Feb 25, 2024 in 0s

spec test results ❌

Tests failed

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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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)