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

Add tests for not: {} schemas for all values. #714

Closed Julian closed 9 months ago

Julian commented 9 months ago

This adds tests that essentially say all instances are valid under "not": false and all are invalid under "not": true and "not": {}.

One would think these would be quite trivial tests... but not all implementations pass them surprisingly!

This was noticed as part of tweaking Bowtie's smoke test for implementations -- which it uses to make sure JSON Schema implementations are running correctly -- in what I thought was a non-functionally meaningful way.

But it turns out one implementation fails one of these tests :) -- namely it incorrectly considers null valid under not: {}.

The actual contents here match what we use in other places (e.g. in boolean-schemas.json).

While we're here, this also adds a test for not: not, i.e. double negation, with just one value to check.

Julian commented 9 months ago

Thanks!