Skip to content

Commit 6d8367f

Browse files
committed
added tests for RFC3339 datetime fix
1 parent 275510f commit 6d8367f

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/formats.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ function compareIsoTime(t1: string, t2: string): number | undefined {
197197
return 0
198198
}
199199

200-
const DATE_TIME_SEPARATOR = /t|T/i
200+
const DATE_TIME_SEPARATOR = /t/i
201201
function getDateTime(strictTimeZone?: boolean): (str: string) => boolean {
202202
const time = getTime(strictTimeZone)
203203

tests/extras/format.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,11 @@
597597
"description": "a valid iso-date-time string (leap second)",
598598
"data": "2016-12-31T23:59:60Z",
599599
"valid": true
600+
},
601+
{
602+
"description": "an invalid iso-date-time string (space separator)",
603+
"data": "2016-12-31 23:59:60Z",
604+
"valid": false
600605
}
601606
]
602607
},

tests/index.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe("addFormats options", () => {
2525
})
2626

2727
test("should support validation mode", () => {
28-
addFormats(ajv, {mode: "fast", formats: ["date", "time"]})
28+
addFormats(ajv, {mode: "fast", formats: ["date", "time", "date-time"]})
2929
const validateDate = ajv.compile({format: "date"})
3030
expect(validateDate("2020-09-17")).toEqual(true)
3131
expect(validateDate("2020-09-35")).toEqual(true)
@@ -35,6 +35,11 @@ describe("addFormats options", () => {
3535
expect(validateTime("17:27:38Z")).toEqual(true)
3636
expect(validateTime("25:27:38Z")).toEqual(true)
3737
expect(validateTime("17:27")).toEqual(false)
38+
39+
const validateDatetime = ajv.compile({format: "date-time"})
40+
expect(validateDatetime("2016-12-31T23:59:60Z")).toEqual(true)
41+
expect(validateDatetime("2016-15-31T23:59:60Z")).toEqual(true)
42+
expect(validateDatetime("2016-12-31 23:59:60Z")).toEqual(false)
3843
})
3944
})
4045

0 commit comments

Comments
 (0)