[
    {
        "description": "invalid type for default",
        "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "properties": {
                "foo": {
                    "type": "integer",
                    "default": []
                }
            }
        },
        "tests": [
            {
                "description": "valid when property is specified",
                "data": {"foo": 13},
                "valid": true
            },
            {
                "description": "still valid when the invalid default is used",
                "data": {},
                "valid": true
            }
        ]
    },
    {
        "description": "invalid string value for default",
        "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "properties": {
                "bar": {
                    "type": "string",
                    "minLength": 4,
                    "default": "bad"
                }
            }
        },
        "tests": [
            {
                "description": "valid when property is specified",
                "data": {"bar": "good"},
                "valid": true
            },
            {
                "description": "still valid when the invalid default is used",
                "data": {},
                "valid": true
            }
        ]
    },
    {
        "description": "the default keyword does not do anything if the property is missing",
        "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
                "alpha": {
                    "type": "number",
                    "maximum": 3,
                    "default": 5
                }
            }
        },
        "tests": [
            {
                "description": "an explicit property value is checked against maximum (passing)",
                "data": { "alpha": 1 },
                "valid": true
            },
            {
                "description": "an explicit property value is checked against maximum (failing)",
                "data": { "alpha": 5 },
                "valid": false
            },
            {
                "description": "missing properties are not filled in with the default",
                "data": {},
                "valid": true
            }
        ]
    }
]
