Skip to content

Commit 4d65d2d

Browse files
authored
Merge pull request #483 from kylef/kylef/date
Stricter date format constraints
2 parents ee9dcaa + c69a89c commit 4d65d2d

File tree

4 files changed

+543
-3
lines changed

4 files changed

+543
-3
lines changed

tests/draft2019-09/optional/format/date.json

Lines changed: 136 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,142 @@
99
"valid": true
1010
},
1111
{
12-
"description": "an invalid date-time string",
12+
"description": "a valid date string with 31 days in January",
13+
"data": "2020-01-31",
14+
"valid": true
15+
},
16+
{
17+
"description": "a invalid date string with 32 days in January",
18+
"data": "2020-01-32",
19+
"valid": false
20+
},
21+
{
22+
"description": "a valid date string with 28 days in February (normal)",
23+
"data": "2021-02-28",
24+
"valid": true
25+
},
26+
{
27+
"description": "a invalid date string with 29 days in February (normal)",
28+
"data": "2021-02-29",
29+
"valid": false
30+
},
31+
{
32+
"description": "a valid date string with 29 days in February (leap)",
33+
"data": "2020-02-29",
34+
"valid": true
35+
},
36+
{
37+
"description": "a invalid date string with 30 days in February (leap)",
38+
"data": "2020-02-30",
39+
"valid": false
40+
},
41+
{
42+
"description": "a valid date string with 31 days in March",
43+
"data": "2020-03-31",
44+
"valid": true
45+
},
46+
{
47+
"description": "a invalid date string with 32 days in March",
48+
"data": "2020-03-32",
49+
"valid": false
50+
},
51+
{
52+
"description": "a valid date string with 30 days in April",
53+
"data": "2020-04-30",
54+
"valid": true
55+
},
56+
{
57+
"description": "a invalid date string with 31 days in April",
58+
"data": "2020-04-31",
59+
"valid": false
60+
},
61+
{
62+
"description": "a valid date string with 31 days in May",
63+
"data": "2020-05-31",
64+
"valid": true
65+
},
66+
{
67+
"description": "a invalid date string with 32 days in May",
68+
"data": "2020-05-32",
69+
"valid": false
70+
},
71+
{
72+
"description": "a valid date string with 30 days in June",
73+
"data": "2020-06-30",
74+
"valid": true
75+
},
76+
{
77+
"description": "a invalid date string with 31 days in June",
78+
"data": "2020-06-31",
79+
"valid": false
80+
},
81+
{
82+
"description": "a valid date string with 31 days in July",
83+
"data": "2020-07-31",
84+
"valid": true
85+
},
86+
{
87+
"description": "a invalid date string with 32 days in July",
88+
"data": "2020-07-32",
89+
"valid": false
90+
},
91+
{
92+
"description": "a valid date string with 31 days in August",
93+
"data": "2020-08-31",
94+
"valid": true
95+
},
96+
{
97+
"description": "a invalid date string with 32 days in August",
98+
"data": "2020-08-32",
99+
"valid": false
100+
},
101+
{
102+
"description": "a valid date string with 30 days in September",
103+
"data": "2020-09-30",
104+
"valid": true
105+
},
106+
{
107+
"description": "a invalid date string with 31 days in September",
108+
"data": "2020-09-31",
109+
"valid": false
110+
},
111+
{
112+
"description": "a valid date string with 31 days in October",
113+
"data": "2020-10-31",
114+
"valid": true
115+
},
116+
{
117+
"description": "a invalid date string with 32 days in October",
118+
"data": "2020-10-32",
119+
"valid": false
120+
},
121+
{
122+
"description": "a valid date string with 30 days in November",
123+
"data": "2020-11-30",
124+
"valid": true
125+
},
126+
{
127+
"description": "a invalid date string with 31 days in November",
128+
"data": "2020-11-31",
129+
"valid": false
130+
},
131+
{
132+
"description": "a valid date string with 31 days in December",
133+
"data": "2020-12-31",
134+
"valid": true
135+
},
136+
{
137+
"description": "a invalid date string with 32 days in December",
138+
"data": "2020-12-32",
139+
"valid": false
140+
},
141+
{
142+
"description": "a invalid date string with invalid month",
143+
"data": "2020-13-01",
144+
"valid": false
145+
},
146+
{
147+
"description": "an invalid date string",
13148
"data": "06/19/1963",
14149
"valid": false
15150
},

tests/draft2020-12/optional/format/date.json

Lines changed: 136 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,142 @@
99
"valid": true
1010
},
1111
{
12-
"description": "an invalid date-time string",
12+
"description": "a valid date string with 31 days in January",
13+
"data": "2020-01-31",
14+
"valid": true
15+
},
16+
{
17+
"description": "a invalid date string with 32 days in January",
18+
"data": "2020-01-32",
19+
"valid": false
20+
},
21+
{
22+
"description": "a valid date string with 28 days in February (normal)",
23+
"data": "2021-02-28",
24+
"valid": true
25+
},
26+
{
27+
"description": "a invalid date string with 29 days in February (normal)",
28+
"data": "2021-02-29",
29+
"valid": false
30+
},
31+
{
32+
"description": "a valid date string with 29 days in February (leap)",
33+
"data": "2020-02-29",
34+
"valid": true
35+
},
36+
{
37+
"description": "a invalid date string with 30 days in February (leap)",
38+
"data": "2020-02-30",
39+
"valid": false
40+
},
41+
{
42+
"description": "a valid date string with 31 days in March",
43+
"data": "2020-03-31",
44+
"valid": true
45+
},
46+
{
47+
"description": "a invalid date string with 32 days in March",
48+
"data": "2020-03-32",
49+
"valid": false
50+
},
51+
{
52+
"description": "a valid date string with 30 days in April",
53+
"data": "2020-04-30",
54+
"valid": true
55+
},
56+
{
57+
"description": "a invalid date string with 31 days in April",
58+
"data": "2020-04-31",
59+
"valid": false
60+
},
61+
{
62+
"description": "a valid date string with 31 days in May",
63+
"data": "2020-05-31",
64+
"valid": true
65+
},
66+
{
67+
"description": "a invalid date string with 32 days in May",
68+
"data": "2020-05-32",
69+
"valid": false
70+
},
71+
{
72+
"description": "a valid date string with 30 days in June",
73+
"data": "2020-06-30",
74+
"valid": true
75+
},
76+
{
77+
"description": "a invalid date string with 31 days in June",
78+
"data": "2020-06-31",
79+
"valid": false
80+
},
81+
{
82+
"description": "a valid date string with 31 days in July",
83+
"data": "2020-07-31",
84+
"valid": true
85+
},
86+
{
87+
"description": "a invalid date string with 32 days in July",
88+
"data": "2020-07-32",
89+
"valid": false
90+
},
91+
{
92+
"description": "a valid date string with 31 days in August",
93+
"data": "2020-08-31",
94+
"valid": true
95+
},
96+
{
97+
"description": "a invalid date string with 32 days in August",
98+
"data": "2020-08-32",
99+
"valid": false
100+
},
101+
{
102+
"description": "a valid date string with 30 days in September",
103+
"data": "2020-09-30",
104+
"valid": true
105+
},
106+
{
107+
"description": "a invalid date string with 31 days in September",
108+
"data": "2020-09-31",
109+
"valid": false
110+
},
111+
{
112+
"description": "a valid date string with 31 days in October",
113+
"data": "2020-10-31",
114+
"valid": true
115+
},
116+
{
117+
"description": "a invalid date string with 32 days in October",
118+
"data": "2020-10-32",
119+
"valid": false
120+
},
121+
{
122+
"description": "a valid date string with 30 days in November",
123+
"data": "2020-11-30",
124+
"valid": true
125+
},
126+
{
127+
"description": "a invalid date string with 31 days in November",
128+
"data": "2020-11-31",
129+
"valid": false
130+
},
131+
{
132+
"description": "a valid date string with 31 days in December",
133+
"data": "2020-12-31",
134+
"valid": true
135+
},
136+
{
137+
"description": "a invalid date string with 32 days in December",
138+
"data": "2020-12-32",
139+
"valid": false
140+
},
141+
{
142+
"description": "a invalid date string with invalid month",
143+
"data": "2020-13-01",
144+
"valid": false
145+
},
146+
{
147+
"description": "an invalid date string",
13148
"data": "06/19/1963",
14149
"valid": false
15150
},

0 commit comments

Comments
 (0)