[ { "description": "propertyNames validation", "database": { "schemas": [ { "propertyNames": { "maxLength": 3 }, "extensible": true, "$id": "propertyNames_0_0" } ] }, "tests": [ { "description": "all property names valid", "data": { "f": {}, "foo": {} }, "valid": true, "schema_id": "propertyNames_0_0" }, { "description": "some property names invalid", "data": { "foo": {}, "foobar": {} }, "valid": false, "schema_id": "propertyNames_0_0" }, { "description": "object without properties is valid", "data": {}, "valid": true, "schema_id": "propertyNames_0_0" }, { "description": "ignores arrays", "data": [ 1, 2, 3, 4 ], "valid": true, "schema_id": "propertyNames_0_0" }, { "description": "ignores strings", "data": "foobar", "valid": true, "schema_id": "propertyNames_0_0" }, { "description": "ignores other non-objects", "data": 12, "valid": true, "schema_id": "propertyNames_0_0" } ] }, { "description": "propertyNames validation with pattern", "database": { "schemas": [ { "propertyNames": { "pattern": "^a+$" }, "extensible": true, "$id": "propertyNames_1_0" } ] }, "tests": [ { "description": "matching property names valid", "data": { "a": {}, "aa": {}, "aaa": {} }, "valid": true, "schema_id": "propertyNames_1_0" }, { "description": "non-matching property name is invalid", "data": { "aaA": {} }, "valid": false, "schema_id": "propertyNames_1_0" }, { "description": "object without properties is valid", "data": {}, "valid": true, "schema_id": "propertyNames_1_0" } ] }, { "description": "propertyNames with boolean schema true", "database": { "schemas": [ { "propertyNames": true, "extensible": true, "$id": "propertyNames_2_0" } ] }, "tests": [ { "description": "object with any properties is valid", "data": { "foo": 1 }, "valid": true, "schema_id": "propertyNames_2_0" }, { "description": "empty object is valid", "data": {}, "valid": true, "schema_id": "propertyNames_2_0" } ] }, { "description": "propertyNames with boolean schema false", "database": { "schemas": [ { "propertyNames": false, "extensible": true, "$id": "propertyNames_3_0" } ] }, "tests": [ { "description": "object with any properties is invalid", "data": { "foo": 1 }, "valid": false, "schema_id": "propertyNames_3_0" }, { "description": "empty object is valid", "data": {}, "valid": true, "schema_id": "propertyNames_3_0" } ] }, { "description": "propertyNames with const", "database": { "schemas": [ { "propertyNames": { "const": "foo" }, "extensible": true, "$id": "propertyNames_4_0" } ] }, "tests": [ { "description": "object with property foo is valid", "data": { "foo": 1 }, "valid": true, "schema_id": "propertyNames_4_0" }, { "description": "object with any other property is invalid", "data": { "bar": 1 }, "valid": false, "schema_id": "propertyNames_4_0" }, { "description": "empty object is valid", "data": {}, "valid": true, "schema_id": "propertyNames_4_0" } ] }, { "description": "propertyNames with enum", "database": { "schemas": [ { "propertyNames": { "enum": [ "foo", "bar" ] }, "extensible": true, "$id": "propertyNames_5_0" } ] }, "tests": [ { "description": "object with property foo is valid", "data": { "foo": 1 }, "valid": true, "schema_id": "propertyNames_5_0" }, { "description": "object with property foo and bar is valid", "data": { "foo": 1, "bar": 1 }, "valid": true, "schema_id": "propertyNames_5_0" }, { "description": "object with any other property is invalid", "data": { "baz": 1 }, "valid": false, "schema_id": "propertyNames_5_0" }, { "description": "empty object is valid", "data": {}, "valid": true, "schema_id": "propertyNames_5_0" } ] }, { "description": "extensible: true allows extra properties (checked by propertyNames)", "database": { "schemas": [ { "propertyNames": { "maxLength": 3 }, "extensible": true, "$id": "propertyNames_6_0" } ] }, "tests": [ { "description": "extra property with valid name is valid", "data": { "foo": 1 }, "valid": true, "schema_id": "propertyNames_6_0" }, { "description": "extra property with invalid name is invalid", "data": { "foobar": 1 }, "valid": false, "schema_id": "propertyNames_6_0" } ] } ]