...

Text file src/github.com/qri-io/jsonschema/testdata/draft6/items.json

Documentation: github.com/qri-io/jsonschema/testdata/draft6

     1[
     2    {
     3        "description": "a schema given for items",
     4        "schema": {
     5            "items": {"type": "integer"}
     6        },
     7        "tests": [
     8            {
     9                "description": "valid items",
    10                "data": [ 1, 2, 3 ],
    11                "valid": true
    12            },
    13            {
    14                "description": "wrong type of items",
    15                "data": [1, "x"],
    16                "valid": false
    17            },
    18            {
    19                "description": "ignores non-arrays",
    20                "data": {"foo" : "bar"},
    21                "valid": true
    22            },
    23            {
    24                "description": "JavaScript pseudo-array is valid",
    25                "data": {
    26                    "0": "invalid",
    27                    "length": 1
    28                },
    29                "valid": true
    30            }
    31        ]
    32    },
    33    {
    34        "description": "an array of schemas for items",
    35        "schema": {
    36            "items": [
    37                {"type": "integer"},
    38                {"type": "string"}
    39            ]
    40        },
    41        "tests": [
    42            {
    43                "description": "correct types",
    44                "data": [ 1, "foo" ],
    45                "valid": true
    46            },
    47            {
    48                "description": "wrong types",
    49                "data": [ "foo", 1 ],
    50                "valid": false
    51            },
    52            {
    53                "description": "incomplete array of items",
    54                "data": [ 1 ],
    55                "valid": true
    56            },
    57            {
    58                "description": "array with additional items",
    59                "data": [ 1, "foo", true ],
    60                "valid": true
    61            },
    62            {
    63                "description": "empty array",
    64                "data": [ ],
    65                "valid": true
    66            },
    67            {
    68                "description": "JavaScript pseudo-array is valid",
    69                "data": {
    70                    "0": "invalid",
    71                    "1": "valid",
    72                    "length": 2
    73                },
    74                "valid": true
    75            }
    76        ]
    77    },
    78    {
    79        "description": "items with boolean schema (true)",
    80        "schema": {"items": true},
    81        "tests": [
    82            {
    83                "description": "any array is valid",
    84                "data": [ 1, "foo", true ],
    85                "valid": true
    86            },
    87            {
    88                "description": "empty array is valid",
    89                "data": [],
    90                "valid": true
    91            }
    92        ]
    93    },
    94    {
    95        "description": "items with boolean schema (false)",
    96        "schema": {"items": false},
    97        "tests": [
    98            {
    99                "description": "any non-empty array is invalid",
   100                "data": [ 1, "foo", true ],
   101                "valid": false
   102            },
   103            {
   104                "description": "empty array is valid",
   105                "data": [],
   106                "valid": true
   107            }
   108        ]
   109    },
   110    {
   111        "description": "items with boolean schemas",
   112        "schema": {
   113            "items": [true, false]
   114        },
   115        "tests": [
   116            {
   117                "description": "array with one item is valid",
   118                "data": [ 1 ],
   119                "valid": true
   120            },
   121            {
   122                "description": "array with two items is invalid",
   123                "data": [ 1, "foo" ],
   124                "valid": false
   125            },
   126            {
   127                "description": "empty array is valid",
   128                "data": [],
   129                "valid": true
   130            }
   131        ]
   132    },
   133    {
   134        "description": "items and subitems",
   135        "schema": {
   136            "definitions": {
   137                "item": {
   138                    "type": "array",
   139                    "additionalItems": false,
   140                    "items": [
   141                        { "$ref": "#/definitions/sub-item" },
   142                        { "$ref": "#/definitions/sub-item" }
   143                    ]
   144                },
   145                "sub-item": {
   146                    "type": "object",
   147                    "required": ["foo"]
   148                }
   149            },
   150            "type": "array",
   151            "additionalItems": false,
   152            "items": [
   153                { "$ref": "#/definitions/item" },
   154                { "$ref": "#/definitions/item" },
   155                { "$ref": "#/definitions/item" }
   156            ]
   157        },
   158        "tests": [
   159            {
   160                "description": "valid items",
   161                "data": [
   162                    [ {"foo": null}, {"foo": null} ],
   163                    [ {"foo": null}, {"foo": null} ],
   164                    [ {"foo": null}, {"foo": null} ]
   165                ],
   166                "valid": true
   167            },
   168            {
   169                "description": "too many items",
   170                "data": [
   171                    [ {"foo": null}, {"foo": null} ],
   172                    [ {"foo": null}, {"foo": null} ],
   173                    [ {"foo": null}, {"foo": null} ],
   174                    [ {"foo": null}, {"foo": null} ]
   175                ],
   176                "valid": false
   177            },
   178            {
   179                "description": "too many sub-items",
   180                "data": [
   181                    [ {"foo": null}, {"foo": null}, {"foo": null} ],
   182                    [ {"foo": null}, {"foo": null} ],
   183                    [ {"foo": null}, {"foo": null} ]
   184                ],
   185                "valid": false
   186            },
   187            {
   188                "description": "wrong item",
   189                "data": [
   190                    {"foo": null},
   191                    [ {"foo": null}, {"foo": null} ],
   192                    [ {"foo": null}, {"foo": null} ]
   193                ],
   194                "valid": false
   195            },
   196            {
   197                "description": "wrong sub-item",
   198                "data": [
   199                    [ {}, {"foo": null} ],
   200                    [ {"foo": null}, {"foo": null} ],
   201                    [ {"foo": null}, {"foo": null} ]
   202                ],
   203                "valid": false
   204            },
   205            {
   206                "description": "fewer items is valid",
   207                "data": [
   208                    [ {"foo": null} ],
   209                    [ {"foo": null} ]
   210                ],
   211                "valid": true
   212            }
   213        ]
   214    },
   215    {
   216        "description": "nested items",
   217        "schema": {
   218            "type": "array",
   219            "items": {
   220                "type": "array",
   221                "items": {
   222                    "type": "array",
   223                    "items": {
   224                        "type": "array",
   225                        "items": {
   226                            "type": "number"
   227                        }
   228                    }
   229                }
   230            }
   231        },
   232        "tests": [
   233            {
   234                "description": "valid nested array",
   235                "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]],
   236                "valid": true
   237            },
   238            {
   239                "description": "nested array with invalid type",
   240                "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]],
   241                "valid": false
   242            },
   243            {
   244                "description": "not deep enough",
   245                "data": [[[1], [2],[3]], [[4], [5], [6]]],
   246                "valid": false
   247            }
   248        ]
   249    }
   250]

View as plain text