Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81160 views
1
[
2
{
3
"description":
4
"patternProperties validates properties matching a regex",
5
"schema": {
6
"patternProperties": {
7
"f.*o": {"type": "integer"}
8
}
9
},
10
"tests": [
11
{
12
"description": "a single valid match is valid",
13
"data": {"foo": 1},
14
"valid": true
15
},
16
{
17
"description": "multiple valid matches is valid",
18
"data": {"foo": 1, "foooooo" : 2},
19
"valid": true
20
},
21
{
22
"description": "a single invalid match is invalid",
23
"data": {"foo": "bar", "fooooo": 2},
24
"valid": false
25
},
26
{
27
"description": "multiple invalid matches is invalid",
28
"data": {"foo": "bar", "foooooo" : "baz"},
29
"valid": false
30
},
31
{
32
"description": "ignores non-objects",
33
"data": 12,
34
"valid": true
35
}
36
]
37
},
38
{
39
"description": "multiple simultaneous patternProperties are validated",
40
"schema": {
41
"patternProperties": {
42
"a*": {"type": "integer"},
43
"aaa*": {"maximum": 20}
44
}
45
},
46
"tests": [
47
{
48
"description": "a single valid match is valid",
49
"data": {"a": 21},
50
"valid": true
51
},
52
{
53
"description": "a simultaneous match is valid",
54
"data": {"aaaa": 18},
55
"valid": true
56
},
57
{
58
"description": "multiple matches is valid",
59
"data": {"a": 21, "aaaa": 18},
60
"valid": true
61
},
62
{
63
"description": "an invalid due to one is invalid",
64
"data": {"a": "bar"},
65
"valid": false
66
},
67
{
68
"description": "an invalid due to the other is invalid",
69
"data": {"aaaa": 31},
70
"valid": false
71
},
72
{
73
"description": "an invalid due to both is invalid",
74
"data": {"aaa": "foo", "aaaa": 31},
75
"valid": false
76
}
77
]
78
},
79
{
80
"description": "regexes are not anchored by default and are case sensitive",
81
"schema": {
82
"patternProperties": {
83
"[0-9]{2,}": { "type": "boolean" },
84
"X_": { "type": "string" }
85
}
86
},
87
"tests": [
88
{
89
"description": "non recognized members are ignored",
90
"data": { "answer 1": "42" },
91
"valid": true
92
},
93
{
94
"description": "recognized members are accounted for",
95
"data": { "a31b": null },
96
"valid": false
97
},
98
{
99
"description": "regexes are case sensitive",
100
"data": { "a_x_3": 3 },
101
"valid": true
102
},
103
{
104
"description": "regexes are case sensitive, 2",
105
"data": { "a_X_3": 3 },
106
"valid": false
107
}
108
]
109
}
110
]
111
112