json-schema-org / JSON-Schema-Test-Suite

A language agnostic test suite for the JSON Schema specifications
MIT License
625 stars 209 forks source link

Ensure $ids are collected within if/then/else schemas. #631

Closed Julian closed 1 year ago

Julian commented 1 year ago

This is the first of probably quite a few trivial changes which make our testing of $ref more resillient -- specifically today, we only test very few keywords to ensure subschemas within them are collected / searched for $ids. This work comes out of discussions with Giorgio Ghelli as well as having written an implementation agnostic referencing implementation in a minimal way (i.e. without artificially including keywords even where tests were missing), wherein it was obvious we only have current tests for 5! keywords.

if/then/else are possibly particularly dangerous, since some tools may mistakenly believe that a schema with no if can have then/else dropped, but this is not the case, as the then/else may contain a subschema that will be referenceable elsewhere.

C/o Giorgio Ghelli

Julian commented 1 year ago

Do we need tests for 2019-09? I don't see them.

Indeed! Fixing on merge, thanks (I got sidetracked trying to figure out whether they were needed for draft6, which indeed they're not).