Skip to content

Commit ab4fd92

Browse files
committed
Improves tests for IRIs and Timestamps.
1 parent 23cd76e commit ab4fd92

4 files changed

Lines changed: 47 additions & 13 deletions

File tree

dist/tests/regexValues/iri.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
"use strict";
22
var itsInvalid_1 = require("../itsInvalid");
33
var itsValid_1 = require("../itsValid");
4-
var validData = 'http://www.example.com';
54
Object.defineProperty(exports, "__esModule", { value: true });
65
exports.default = function (test) {
76
itsInvalid_1.default('http', 'not an IRI', test);
87
itsInvalid_1.default(10, 'not a String', test);
9-
itsValid_1.default(validData, test);
8+
itsValid_1.default('http://www.example.com', test);
9+
itsValid_1.default('http://fo-o.com/blah_blah_(wikipedia)#cite-1', test);
10+
itsValid_1.default('https://www.example.com/foo/?bar=b%20az&inga=42&quux', test);
11+
itsValid_1.default('http://userid:password@example.com:8080/', test);
12+
itsValid_1.default('http://userid:password@example.com/', test);
13+
itsValid_1.default('http://142.42.1.1:8080/', test);
14+
itsValid_1.default('http://foo.com/unicode_(✪)_in_parens', test);
15+
itsValid_1.default('http://foo.com/(something)?after=parens', test);
16+
itsValid_1.default('http://code.google.com/events/#&product=browser', test);
17+
itsValid_1.default('ftp://foo.bar/baz', test);
18+
itsValid_1.default('http://⌘➡例子.测试✪उदाहरण.परीकإختبار/䨹', test);
19+
itsValid_1.default('http://-.~_!$&\'()*+,;=:%40:80%2f::::::@example.com', test);
1020
};
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
"use strict";
22
var itsInvalid_1 = require("../itsInvalid");
33
var itsValid_1 = require("../itsValid");
4-
var validData = '20090131T230000-0100';
54
Object.defineProperty(exports, "__esModule", { value: true });
65
exports.default = function (test) {
7-
itsInvalid_1.default('2009-01-31T230000-01:00', 'not a Timestamp', test);
86
itsInvalid_1.default(10, 'not a String', test);
9-
itsValid_1.default(validData, test);
7+
itsValid_1.default('20090131T230000-0100', test);
108
itsValid_1.default('2009-01-31T23:00:00-01:00', test);
9+
itsValid_1.default('20170101', test);
10+
itsValid_1.default('2017-01-01', test);
11+
itsInvalid_1.default('2009-01-31T230000-01:00', 'not a Timestamp', test);
12+
itsInvalid_1.default('2017', 'not a Timestamp', test);
13+
itsInvalid_1.default('2017-01', 'not a Timestamp', test);
14+
itsInvalid_1.default('2013-99-99T04:13:00+00:00', 'not a Timestamp', test);
15+
itsValid_1.default('0785-10-10T04:13:00+00:00', test);
1116
};

src/tests/regexValues/iri.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@ import Test from '../helpers/test';
22
import itsInvalid from '../itsInvalid';
33
import itsValid from '../itsValid';
44

5-
const validData = 'http://www.example.com';
6-
75
export default (test: Test) => {
86
itsInvalid('http', 'not an IRI', test);
97
itsInvalid(10, 'not a String', test);
10-
itsValid(validData, test);
8+
itsValid('http://www.example.com', test);
9+
10+
// https://mathiasbynens.be/demo/url-regex
11+
itsValid('http://fo-o.com/blah_blah_(wikipedia)#cite-1', test);
12+
itsValid('https://www.example.com/foo/?bar=b%20az&inga=42&quux', test);
13+
itsValid('http://userid:password@example.com:8080/', test);
14+
itsValid('http://userid:password@example.com/', test);
15+
itsValid('http://142.42.1.1:8080/', test);
16+
itsValid('http://foo.com/unicode_(✪)_in_parens', test);
17+
itsValid('http://foo.com/(something)?after=parens', test);
18+
itsValid('http://code.google.com/events/#&product=browser', test);
19+
itsValid('ftp://foo.bar/baz', test);
20+
itsValid('http://⌘➡例子.测试✪उदाहरण.परीकإختبار/䨹', test);
21+
itsValid('http://-.~_!$&\'()*+,;=:%40:80%2f::::::@example.com', test);
1122
};

src/tests/regexValues/timestamp.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,19 @@ import Test from '../helpers/test';
22
import itsInvalid from '../itsInvalid';
33
import itsValid from '../itsValid';
44

5-
const validData = '20090131T230000-0100';
6-
75
export default (test: Test) => {
8-
itsInvalid('2009-01-31T230000-01:00', 'not a Timestamp', test);
96
itsInvalid(10, 'not a String', test);
10-
itsValid(validData, test);
11-
itsValid('2009-01-31T23:00:00-01:00', test); // Extended
7+
8+
itsValid('20090131T230000-0100', test); // Basic format
9+
itsValid('2009-01-31T23:00:00-01:00', test); // Extended format
10+
itsValid('20170101', test); // Date basic format
11+
itsValid('2017-01-01', test); // Date extended format
12+
13+
itsInvalid('2009-01-31T230000-01:00', 'not a Timestamp', test);
14+
itsInvalid('2017', 'not a Timestamp', test);
15+
itsInvalid('2017-01', 'not a Timestamp', test);
16+
17+
// http://stackoverflow.com/questions/12756159
18+
itsInvalid('2013-99-99T04:13:00+00:00', 'not a Timestamp', test);
19+
itsValid('0785-10-10T04:13:00+00:00', test);
1220
};

0 commit comments

Comments
 (0)