forked from ajv-validator/ajv
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue ajv-validator#1061 - Update time and date-time format definitio…
…ns to support two digit and colon-less variants of timezone offset. Add tests. Update test eslint to include global after function.
- Loading branch information
1 parent
82112b0
commit 9e26105
Showing
3 changed files
with
241 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,5 +7,6 @@ globals: | |
describe: false | ||
it: false | ||
before: false | ||
after: false | ||
beforeEach: false | ||
afterEach: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,237 @@ | ||
"use strict"; | ||
|
||
var Ajv = require("../ajv"); | ||
require("../chai").should(); | ||
|
||
describe("PR #617, full date format validation should understand leap years", function() { | ||
describe("time formats - fast", function() { | ||
var ajv; | ||
var schema; | ||
|
||
before(function() { | ||
ajv = new Ajv({ format: "fast" }); | ||
schema = { format: "time" }; | ||
}); | ||
|
||
after(function() { | ||
ajv = undefined; | ||
schema = undefined; | ||
}); | ||
|
||
it("should treat two digit positive time offsets as valid", function() { | ||
var validTime = "02:31:17+01"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should treat two digit negative time offsets as valid", function() { | ||
var validTime = "02:31:17-01"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit positive time offsets without colons as valid", function() { | ||
var validTime = "02:31:17+0130"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit negative time offsets without colons as valid", function() { | ||
var validTime = "02:31:17-0130"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should three digit positive time offsets as invalid", function() { | ||
var invalidTime = "02:31:17+013"; | ||
ajv | ||
.validate(schema, invalidTime) | ||
.should.equal(false, "expected " + invalidTime + " to be invalid"); | ||
}); | ||
|
||
it("should treat three digit negative time offsets as invalid", function() { | ||
var invalidTime = "02:31:17-013"; | ||
ajv | ||
.validate(schema, invalidTime) | ||
.should.equal(false, "expected " + invalidTime + " to be invalid"); | ||
}); | ||
}); | ||
|
||
describe("time formats - full", function() { | ||
var ajv; | ||
var schema; | ||
|
||
before(function() { | ||
ajv = new Ajv({ format: "full" }); | ||
schema = { format: "time" }; | ||
}); | ||
|
||
after(function() { | ||
ajv = undefined; | ||
schema = undefined; | ||
}); | ||
|
||
it("should treat two digit positive time offsets as valid", function() { | ||
var validTime = "02:31:17+01"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should treat two digit negative time offsets as valid", function() { | ||
var validTime = "02:31:17-01"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit positive time offsets without colons as valid", function() { | ||
var validTime = "02:31:17+0130"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit negative time offsets without colons as valid", function() { | ||
var validTime = "02:31:17-0130"; | ||
ajv | ||
.validate(schema, validTime) | ||
.should.equal(true, "expected " + validTime + " to be valid"); | ||
}); | ||
|
||
it("should three digit positive time offsets as invalid", function() { | ||
var invalidTime = "02:31:17+013"; | ||
ajv | ||
.validate(schema, invalidTime) | ||
.should.equal(false, "expected " + invalidTime + " to be invalid"); | ||
}); | ||
|
||
it("should treat three digit negative time offsets as invalid", function() { | ||
var invalidTime = "02:31:17-013"; | ||
ajv | ||
.validate(schema, invalidTime) | ||
.should.equal(false, "expected " + invalidTime + " to be invalid"); | ||
}); | ||
}); | ||
|
||
describe("date-time formats - fast", function() { | ||
var ajv; | ||
var schema; | ||
|
||
before(function() { | ||
ajv = new Ajv({ format: "fast" }); | ||
schema = { format: "date-time" }; | ||
}); | ||
|
||
after(function() { | ||
ajv = undefined; | ||
schema = undefined; | ||
}); | ||
|
||
it("should treat two digit positive time offsets as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17+01"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should treat two digit negative time offsets as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17-01"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit positive time offsets without colons as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17+0130"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit negative time offsets without colons as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17-0130"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should three digit positive time offsets as invalid", function() { | ||
var invalidDateTime = "2016-01-31T02:31:17+013"; | ||
ajv | ||
.validate(schema, invalidDateTime) | ||
.should.equal(false, "expected " + invalidDateTime + " to be invalid"); | ||
}); | ||
|
||
it("should treat three digit negative time offsets as invalid", function() { | ||
var invalidDateTime = "2016-01-31T02:31:17-013"; | ||
ajv | ||
.validate(schema, invalidDateTime) | ||
.should.equal(false, "expected " + invalidDateTime + " to be invalid"); | ||
}); | ||
}); | ||
|
||
describe("date-time formats - full", function() { | ||
var ajv; | ||
var schema; | ||
|
||
before(function() { | ||
ajv = new Ajv({ format: "full" }); | ||
schema = { format: "date-time" }; | ||
}); | ||
|
||
after(function() { | ||
ajv = undefined; | ||
schema = undefined; | ||
}); | ||
|
||
it("should treat two digit positive time offsets as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17+01"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should treat two digit negative time offsets as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17-01"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should treat four digit positive time offsets without colons as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17+0130"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal( | ||
true, | ||
"2016-01-31Texpected " + validDateTime + " to be valid" | ||
); | ||
}); | ||
|
||
it("should treat four digit negative time offsets without colons as valid", function() { | ||
var validDateTime = "2016-01-31T02:31:17-0130"; | ||
ajv | ||
.validate(schema, validDateTime) | ||
.should.equal(true, "expected " + validDateTime + " to be valid"); | ||
}); | ||
|
||
it("should three digit positive time offsets as invalid", function() { | ||
var invalidDateTime = "2016-01-31T02:31:17+013"; | ||
ajv | ||
.validate(schema, invalidDateTime) | ||
.should.equal(false, "expected " + invalidDateTime + " to be invalid"); | ||
}); | ||
|
||
it("should treat three digit negative time offsets as invalid", function() { | ||
var invalidDateTime = "2016-01-31T02:31:17-013"; | ||
ajv | ||
.validate(schema, invalidDateTime) | ||
.should.equal(false, "expected " + invalidDateTime + " to be invalid"); | ||
}); | ||
}); | ||
}); |