@nr1e/commons 0.1.2 → 0.1.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/bitsnbytes/b64.test.d.mts +0 -2
- package/bitsnbytes/b64.test.d.mts.map +0 -1
- package/bitsnbytes/b64.test.mjs +0 -71
- package/bitsnbytes/b64.test.mjs.map +0 -1
- package/errors/errors.test.d.mts +0 -2
- package/errors/errors.test.d.mts.map +0 -1
- package/errors/errors.test.mjs +0 -45
- package/errors/errors.test.mjs.map +0 -1
- package/oauth/crypto-functions.test.d.mts +0 -2
- package/oauth/crypto-functions.test.d.mts.map +0 -1
- package/oauth/crypto-functions.test.mjs +0 -36
- package/oauth/crypto-functions.test.mjs.map +0 -1
- package/validator/validators.test.d.mts +0 -2
- package/validator/validators.test.d.mts.map +0 -1
- package/validator/validators.test.mjs +0 -177
- package/validator/validators.test.mjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nr1e/commons",
|
|
3
3
|
"description": "Provides common patterns for validation",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3-alpha.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "NR1E, Inc.",
|
|
7
7
|
"publishConfig": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"lint": "gts lint",
|
|
67
67
|
"clean": "rm -rf dist && rm -rf site && rm -rf coverage",
|
|
68
68
|
"fix": "gts fix",
|
|
69
|
-
"
|
|
69
|
+
"fmt": "prettier --write .",
|
|
70
70
|
"site": "typedoc --out site \"src/**/*.mts\" --exclude \"src/**/*.test.*\""
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"b64.test.d.mts","sourceRoot":"","sources":["../../src/bitsnbytes/b64.test.mts"],"names":[],"mappings":""}
|
package/bitsnbytes/b64.test.mjs
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { test, expect } from 'vitest';
|
|
2
|
-
import { stob64s, tob64s } from './b64.mjs';
|
|
3
|
-
import * as crypto from 'crypto';
|
|
4
|
-
test('Test tob64', () => {
|
|
5
|
-
const str = '"Computer, compute to the last digit the value of pi" -- Spock';
|
|
6
|
-
let b64s = [
|
|
7
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s=',
|
|
8
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw==',
|
|
9
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',
|
|
10
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A=',
|
|
11
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw==',
|
|
12
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',
|
|
13
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0=',
|
|
14
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ==',
|
|
15
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',
|
|
16
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI=',
|
|
17
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ==',
|
|
18
|
-
];
|
|
19
|
-
for (let i = 0; i < b64s.length; i++) {
|
|
20
|
-
expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i)));
|
|
21
|
-
}
|
|
22
|
-
// Test URL modified base64 encoding
|
|
23
|
-
b64s = [
|
|
24
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s',
|
|
25
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw',
|
|
26
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',
|
|
27
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A',
|
|
28
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw',
|
|
29
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',
|
|
30
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0',
|
|
31
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ',
|
|
32
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',
|
|
33
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI',
|
|
34
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ',
|
|
35
|
-
];
|
|
36
|
-
for (let i = 0; i < b64s.length; i++) {
|
|
37
|
-
expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i), { b64chars: 'url' }));
|
|
38
|
-
}
|
|
39
|
-
// Test YUI modified base64 encoding
|
|
40
|
-
b64s = [
|
|
41
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s-',
|
|
42
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw--',
|
|
43
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',
|
|
44
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A-',
|
|
45
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw--',
|
|
46
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',
|
|
47
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0-',
|
|
48
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ--',
|
|
49
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',
|
|
50
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI-',
|
|
51
|
-
'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ--',
|
|
52
|
-
];
|
|
53
|
-
for (let i = 0; i < b64s.length; i++) {
|
|
54
|
-
expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i), { b64chars: 'yui' }));
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
test('Compare to Node', () => {
|
|
58
|
-
for (let i = 0; i < 100; i++) {
|
|
59
|
-
const bytes = crypto.randomBytes(16);
|
|
60
|
-
const str = tob64s(bytes, { b64chars: 'url' });
|
|
61
|
-
const nodeStr = bytes.toString('base64url');
|
|
62
|
-
expect(str).toEqual(nodeStr);
|
|
63
|
-
}
|
|
64
|
-
for (let i = 0; i < 100; i++) {
|
|
65
|
-
const bytes = crypto.randomBytes(16);
|
|
66
|
-
const str = tob64s(bytes, { b64chars: 'b64' });
|
|
67
|
-
const nodeStr = bytes.toString('base64');
|
|
68
|
-
expect(str).toEqual(nodeStr);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
//# sourceMappingURL=b64.test.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"b64.test.mjs","sourceRoot":"","sources":["../../src/bitsnbytes/b64.test.mts"],"names":[],"mappings":"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","sourcesContent":["import {test, expect} from 'vitest';\nimport {stob64s, tob64s} from './b64.mjs';\nimport * as crypto from 'crypto';\n\ntest('Test tob64', () => {\n const str = '\"Computer, compute to the last digit the value of pi\" -- Spock';\n let b64s = [\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s=',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw==',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A=',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw==',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0=',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ==',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI=',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ==',\n ];\n for (let i = 0; i < b64s.length; i++) {\n expect(b64s[i]).toBe(stob64s(str.substring(0, str.length - i)));\n }\n\n // Test URL modified base64 encoding\n b64s = [\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ',\n ];\n for (let i = 0; i < b64s.length; i++) {\n expect(b64s[i]).toBe(\n stob64s(str.substring(0, str.length - i), {b64chars: 'url'})\n );\n }\n\n // Test YUI modified base64 encoding\n b64s = [\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvY2s-',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3BvYw--',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3Bv',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gU3A-',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0gUw--',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0g',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLS0-',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIgLQ--',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSIg',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaSI-',\n 'IkNvbXB1dGVyLCBjb21wdXRlIHRvIHRoZSBsYXN0IGRpZ2l0IHRoZSB2YWx1ZSBvZiBwaQ--',\n ];\n for (let i = 0; i < b64s.length; i++) {\n expect(b64s[i]).toBe(\n stob64s(str.substring(0, str.length - i), {b64chars: 'yui'})\n );\n }\n});\n\ntest('Compare to Node', () => {\n for (let i = 0; i < 100; i++) {\n const bytes = crypto.randomBytes(16);\n const str = tob64s(bytes, {b64chars: 'url'});\n const nodeStr = bytes.toString('base64url');\n expect(str).toEqual(nodeStr);\n }\n for (let i = 0; i < 100; i++) {\n const bytes = crypto.randomBytes(16);\n const str = tob64s(bytes, {b64chars: 'b64'});\n const nodeStr = bytes.toString('base64');\n expect(str).toEqual(nodeStr);\n }\n});\n"]}
|
package/errors/errors.test.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.test.d.mts","sourceRoot":"","sources":["../../src/errors/errors.test.mts"],"names":[],"mappings":""}
|
package/errors/errors.test.mjs
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { test, expect } from 'vitest';
|
|
2
|
-
import { BadRequestError, ForbiddenError, InternalServerError, isBadRequestError, isForbiddenError, isInternalServerError, isNotFoundError, isValidationError, NotFoundError, toError, ValidationError, } from './errors.mjs';
|
|
3
|
-
import { HttpStatusCode } from '../http/index.mjs';
|
|
4
|
-
test('Test isNotFoundError', () => {
|
|
5
|
-
expect(isNotFoundError(undefined)).toBeFalsy();
|
|
6
|
-
expect(isNotFoundError(null)).toBeFalsy();
|
|
7
|
-
expect(isNotFoundError({})).toBeFalsy();
|
|
8
|
-
expect(isNotFoundError(new ForbiddenError('just a test'))).toBeFalsy();
|
|
9
|
-
expect(isNotFoundError(new NotFoundError('just a test'))).toBeTruthy();
|
|
10
|
-
});
|
|
11
|
-
test('Test isForbiddenError', () => {
|
|
12
|
-
expect(isForbiddenError(undefined)).toBeFalsy();
|
|
13
|
-
expect(isForbiddenError(null)).toBeFalsy();
|
|
14
|
-
expect(isForbiddenError({})).toBeFalsy();
|
|
15
|
-
expect(isForbiddenError(new NotFoundError('just a test'))).toBeFalsy();
|
|
16
|
-
expect(isForbiddenError(new ForbiddenError('just a test'))).toBeTruthy();
|
|
17
|
-
});
|
|
18
|
-
test('Test isValidationError', () => {
|
|
19
|
-
expect(isValidationError(undefined)).toBeFalsy();
|
|
20
|
-
expect(isValidationError(null)).toBeFalsy();
|
|
21
|
-
expect(isValidationError({})).toBeFalsy();
|
|
22
|
-
expect(isValidationError(new NotFoundError('just a test'))).toBeFalsy();
|
|
23
|
-
expect(isValidationError(new ValidationError('just a test'))).toBeTruthy();
|
|
24
|
-
});
|
|
25
|
-
test('Test isBadRequestError', () => {
|
|
26
|
-
expect(isBadRequestError(undefined)).toBeFalsy();
|
|
27
|
-
expect(isBadRequestError(null)).toBeFalsy();
|
|
28
|
-
expect(isBadRequestError({})).toBeFalsy();
|
|
29
|
-
expect(isBadRequestError(new NotFoundError('just a test'))).toBeFalsy();
|
|
30
|
-
expect(isBadRequestError(new BadRequestError('just a test'))).toBeTruthy();
|
|
31
|
-
});
|
|
32
|
-
test('Test isInternalServerError', () => {
|
|
33
|
-
expect(isInternalServerError(undefined)).toBeFalsy();
|
|
34
|
-
expect(isInternalServerError(null)).toBeFalsy();
|
|
35
|
-
expect(isInternalServerError({})).toBeFalsy();
|
|
36
|
-
expect(isInternalServerError(new NotFoundError('just a test'))).toBeFalsy();
|
|
37
|
-
expect(isInternalServerError(new InternalServerError('just a test'))).toBeTruthy();
|
|
38
|
-
});
|
|
39
|
-
test('Test toError', () => {
|
|
40
|
-
expect(isNotFoundError(toError(HttpStatusCode.NOT_FOUND, 'some message'))).toBeTruthy();
|
|
41
|
-
expect(isForbiddenError(toError(HttpStatusCode.FORBIDDEN, 'some message'))).toBeTruthy();
|
|
42
|
-
expect(isBadRequestError(toError(HttpStatusCode.BAD_REQUEST, 'some message'))).toBeTruthy();
|
|
43
|
-
expect(isInternalServerError(toError(HttpStatusCode.INTERNAL_SERVER_ERROR, 'some message'))).toBeTruthy();
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=errors.test.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.test.mjs","sourceRoot":"","sources":["../../src/errors/errors.test.mts"],"names":[],"mappings":"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","sourcesContent":["import {test, expect} from 'vitest';\nimport {\n BadRequestError,\n ForbiddenError,\n InternalServerError,\n isBadRequestError,\n isForbiddenError,\n isInternalServerError,\n isNotFoundError,\n isValidationError,\n NotFoundError,\n toError,\n ValidationError,\n} from './errors.mjs';\nimport {HttpStatusCode} from '../http/index.mjs';\n\ntest('Test isNotFoundError', () => {\n expect(isNotFoundError(undefined)).toBeFalsy();\n expect(isNotFoundError(null)).toBeFalsy();\n expect(isNotFoundError({})).toBeFalsy();\n expect(isNotFoundError(new ForbiddenError('just a test'))).toBeFalsy();\n expect(isNotFoundError(new NotFoundError('just a test'))).toBeTruthy();\n});\n\ntest('Test isForbiddenError', () => {\n expect(isForbiddenError(undefined)).toBeFalsy();\n expect(isForbiddenError(null)).toBeFalsy();\n expect(isForbiddenError({})).toBeFalsy();\n expect(isForbiddenError(new NotFoundError('just a test'))).toBeFalsy();\n expect(isForbiddenError(new ForbiddenError('just a test'))).toBeTruthy();\n});\n\ntest('Test isValidationError', () => {\n expect(isValidationError(undefined)).toBeFalsy();\n expect(isValidationError(null)).toBeFalsy();\n expect(isValidationError({})).toBeFalsy();\n expect(isValidationError(new NotFoundError('just a test'))).toBeFalsy();\n expect(isValidationError(new ValidationError('just a test'))).toBeTruthy();\n});\n\ntest('Test isBadRequestError', () => {\n expect(isBadRequestError(undefined)).toBeFalsy();\n expect(isBadRequestError(null)).toBeFalsy();\n expect(isBadRequestError({})).toBeFalsy();\n expect(isBadRequestError(new NotFoundError('just a test'))).toBeFalsy();\n expect(isBadRequestError(new BadRequestError('just a test'))).toBeTruthy();\n});\n\ntest('Test isInternalServerError', () => {\n expect(isInternalServerError(undefined)).toBeFalsy();\n expect(isInternalServerError(null)).toBeFalsy();\n expect(isInternalServerError({})).toBeFalsy();\n expect(isInternalServerError(new NotFoundError('just a test'))).toBeFalsy();\n expect(\n isInternalServerError(new InternalServerError('just a test'))\n ).toBeTruthy();\n});\n\ntest('Test toError', () => {\n expect(\n isNotFoundError(toError(HttpStatusCode.NOT_FOUND, 'some message'))\n ).toBeTruthy();\n expect(\n isForbiddenError(toError(HttpStatusCode.FORBIDDEN, 'some message'))\n ).toBeTruthy();\n expect(\n isBadRequestError(toError(HttpStatusCode.BAD_REQUEST, 'some message'))\n ).toBeTruthy();\n expect(\n isInternalServerError(\n toError(HttpStatusCode.INTERNAL_SERVER_ERROR, 'some message')\n )\n ).toBeTruthy();\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-functions.test.d.mts","sourceRoot":"","sources":["../../src/oauth/crypto-functions.test.mts"],"names":[],"mappings":""}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { test, expect } from 'vitest';
|
|
2
|
-
import { generateNonce, generateSecret, generateState, } from './crypto-functions.mjs';
|
|
3
|
-
test('Test generateState', () => {
|
|
4
|
-
const state = generateState();
|
|
5
|
-
expect(state).toMatch(/^[A-Za-z0-9_-]{22}$/);
|
|
6
|
-
});
|
|
7
|
-
test('Test generateState with custom length', () => {
|
|
8
|
-
const state = generateState(32);
|
|
9
|
-
expect(state).toMatch(/^[A-Za-z0-9_-]{43}$/);
|
|
10
|
-
});
|
|
11
|
-
test('Test generateState with invalid length', () => {
|
|
12
|
-
expect(() => generateState(10)).toThrow('State must be at least 16 bytes');
|
|
13
|
-
});
|
|
14
|
-
test('Test generateNonce', () => {
|
|
15
|
-
const nonce = generateNonce();
|
|
16
|
-
expect(nonce).toMatch(/^[A-Za-z0-9_-]{22}$/);
|
|
17
|
-
});
|
|
18
|
-
test('Test generateNonce with custom length', () => {
|
|
19
|
-
const nonce = generateNonce(32);
|
|
20
|
-
expect(nonce).toMatch(/^[A-Za-z0-9_-]{43}$/);
|
|
21
|
-
});
|
|
22
|
-
test('Test generateNonce with invalid length', () => {
|
|
23
|
-
expect(() => generateNonce(10)).toThrow('Nonce must be at least 16 bytes');
|
|
24
|
-
});
|
|
25
|
-
test('Test generateSecret', () => {
|
|
26
|
-
const secret = generateSecret();
|
|
27
|
-
expect(secret).toMatch(/^[A-Za-z0-9_-]{43}$/);
|
|
28
|
-
});
|
|
29
|
-
test('Test generateSecret with custom length', () => {
|
|
30
|
-
const secret = generateSecret(64);
|
|
31
|
-
expect(secret).toMatch(/^[A-Za-z0-9_-]{86}$/);
|
|
32
|
-
});
|
|
33
|
-
test('Test generateSecret with invalid length', () => {
|
|
34
|
-
expect(() => generateSecret(10)).toThrow('Secret must be at least 32 bytes');
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=crypto-functions.test.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-functions.test.mjs","sourceRoot":"","sources":["../../src/oauth/crypto-functions.test.mts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC9B,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC/B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACnD,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC","sourcesContent":["import {test, expect} from 'vitest';\nimport {\n generateNonce,\n generateSecret,\n generateState,\n} from './crypto-functions.mjs';\n\ntest('Test generateState', () => {\n const state = generateState();\n expect(state).toMatch(/^[A-Za-z0-9_-]{22}$/);\n});\n\ntest('Test generateState with custom length', () => {\n const state = generateState(32);\n expect(state).toMatch(/^[A-Za-z0-9_-]{43}$/);\n});\n\ntest('Test generateState with invalid length', () => {\n expect(() => generateState(10)).toThrow('State must be at least 16 bytes');\n});\n\ntest('Test generateNonce', () => {\n const nonce = generateNonce();\n expect(nonce).toMatch(/^[A-Za-z0-9_-]{22}$/);\n});\n\ntest('Test generateNonce with custom length', () => {\n const nonce = generateNonce(32);\n expect(nonce).toMatch(/^[A-Za-z0-9_-]{43}$/);\n});\n\ntest('Test generateNonce with invalid length', () => {\n expect(() => generateNonce(10)).toThrow('Nonce must be at least 16 bytes');\n});\n\ntest('Test generateSecret', () => {\n const secret = generateSecret();\n expect(secret).toMatch(/^[A-Za-z0-9_-]{43}$/);\n});\n\ntest('Test generateSecret with custom length', () => {\n const secret = generateSecret(64);\n expect(secret).toMatch(/^[A-Za-z0-9_-]{86}$/);\n});\n\ntest('Test generateSecret with invalid length', () => {\n expect(() => generateSecret(10)).toThrow('Secret must be at least 32 bytes');\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.test.d.mts","sourceRoot":"","sources":["../../src/validator/validators.test.mts"],"names":[],"mappings":""}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { test, expect } from 'vitest';
|
|
2
|
-
import { betweenValues, email, number, maxLength, maxValue, minLength, minValue, notBlank, notEmpty, notNull, validString, isNotNull, isNotEmpty, isNotBlank, match, isMatch, isEmail, isMaxLength, isMinLength, isNumber, isMinValue, isMaxValue, isBetweenValues, isValidString, } from './validators.mjs';
|
|
3
|
-
test('Test isNotNull', () => {
|
|
4
|
-
expect(isNotNull('bar')).toBeTruthy();
|
|
5
|
-
expect(isNotNull(null)).toBeFalsy();
|
|
6
|
-
expect(isNotNull(undefined)).toBeFalsy();
|
|
7
|
-
});
|
|
8
|
-
test('Test notNull', () => {
|
|
9
|
-
notNull('foo', 'bar');
|
|
10
|
-
expect(() => notNull('foo', null)).toThrow('foo may not be null or undefined');
|
|
11
|
-
expect(() => notNull('foo', undefined)).toThrow('foo may not be null or undefined');
|
|
12
|
-
});
|
|
13
|
-
test('Test isNotEmpty', () => {
|
|
14
|
-
expect(isNotEmpty('bar')).toBeTruthy();
|
|
15
|
-
expect(isNotEmpty('')).toBeFalsy();
|
|
16
|
-
expect(isNotEmpty(null)).toBeFalsy();
|
|
17
|
-
expect(isNotEmpty(undefined)).toBeFalsy();
|
|
18
|
-
});
|
|
19
|
-
test('Test notEmpty', () => {
|
|
20
|
-
notEmpty('foo', 'bar');
|
|
21
|
-
expect(() => notEmpty('foo', '')).toThrow('foo may not be empty');
|
|
22
|
-
expect(() => notEmpty('foo', null)).toThrow('foo may not be empty');
|
|
23
|
-
expect(() => notEmpty('foo', undefined)).toThrow('foo may not be empty');
|
|
24
|
-
});
|
|
25
|
-
test('Test isNotBlank', () => {
|
|
26
|
-
expect(isNotBlank('bar')).toBeTruthy();
|
|
27
|
-
expect(isNotBlank(' ')).toBeFalsy();
|
|
28
|
-
expect(isNotBlank('')).toBeFalsy();
|
|
29
|
-
expect(isNotBlank(null)).toBeFalsy();
|
|
30
|
-
expect(isNotBlank(undefined)).toBeFalsy();
|
|
31
|
-
});
|
|
32
|
-
test('Test notBlank', () => {
|
|
33
|
-
notBlank('foo', 'bar');
|
|
34
|
-
expect(() => notBlank('foo', ' ')).toThrow('foo may not be blank');
|
|
35
|
-
expect(() => notBlank('foo', '')).toThrow('foo may not be blank');
|
|
36
|
-
expect(() => notBlank('foo', null)).toThrow('foo may not be blank');
|
|
37
|
-
expect(() => notBlank('foo', undefined)).toThrow('foo may not be blank');
|
|
38
|
-
});
|
|
39
|
-
test('Test isMatch', () => {
|
|
40
|
-
expect(isMatch(/bar/, 'bar')).toBeTruthy();
|
|
41
|
-
expect(isMatch(/bar/, null)).toBeTruthy();
|
|
42
|
-
expect(isMatch(/bar/, undefined)).toBeTruthy();
|
|
43
|
-
expect(isMatch(/bar/, 'baz')).toBeFalsy();
|
|
44
|
-
});
|
|
45
|
-
test('Test match', () => {
|
|
46
|
-
match('foo', /bar/, 'bar');
|
|
47
|
-
match('foo', /bar/, null);
|
|
48
|
-
match('foo', /bar/, undefined);
|
|
49
|
-
expect(() => match('foo', /bar/, 'baz')).toThrow('foo must match /bar/');
|
|
50
|
-
});
|
|
51
|
-
test('Test isEmail', () => {
|
|
52
|
-
expect(isEmail('test@example.com')).toBeTruthy();
|
|
53
|
-
expect(isEmail(null)).toBeTruthy();
|
|
54
|
-
expect(isEmail(undefined)).toBeTruthy();
|
|
55
|
-
expect(isEmail('test')).toBeFalsy();
|
|
56
|
-
});
|
|
57
|
-
test('Test email', () => {
|
|
58
|
-
email('foo', 'test@example.com');
|
|
59
|
-
email('foo', null);
|
|
60
|
-
email('foo', undefined);
|
|
61
|
-
expect(() => email('foo', 'test')).toThrow('foo is not a valid email address');
|
|
62
|
-
});
|
|
63
|
-
test('Test isMaxLength', () => {
|
|
64
|
-
const arr = [];
|
|
65
|
-
arr.push('a', 'b', 'c');
|
|
66
|
-
expect(isMaxLength(3, 'bar')).toBeTruthy();
|
|
67
|
-
expect(isMaxLength(3, null)).toBeTruthy();
|
|
68
|
-
expect(isMaxLength(3, undefined)).toBeTruthy();
|
|
69
|
-
expect(isMaxLength(3, arr)).toBeTruthy();
|
|
70
|
-
expect(isMaxLength(2, 'baz')).toBeFalsy();
|
|
71
|
-
expect(isMaxLength(2, arr)).toBeFalsy();
|
|
72
|
-
});
|
|
73
|
-
test('Test maxLength', () => {
|
|
74
|
-
const arr = [];
|
|
75
|
-
arr.push('a', 'b', 'c');
|
|
76
|
-
maxLength('foo', 3, 'bar');
|
|
77
|
-
maxLength('foo', 3, null);
|
|
78
|
-
maxLength('foo', 3, undefined);
|
|
79
|
-
maxLength('foo', 3, arr);
|
|
80
|
-
expect(() => maxLength('foo', 2, 'baz')).toThrow('length of foo may not exceed 2');
|
|
81
|
-
expect(() => maxLength('foo', 2, arr)).toThrow('length of foo may not exceed 2');
|
|
82
|
-
});
|
|
83
|
-
test('Test isMinLength', () => {
|
|
84
|
-
const arr = [];
|
|
85
|
-
arr.push('a', 'b', 'c');
|
|
86
|
-
expect(isMinLength(3, 'bar')).toBeTruthy();
|
|
87
|
-
expect(isMinLength(3, null)).toBeTruthy();
|
|
88
|
-
expect(isMinLength(3, undefined)).toBeTruthy();
|
|
89
|
-
expect(isMinLength(3, arr)).toBeTruthy();
|
|
90
|
-
expect(isMinLength(4, 'baz')).toBeFalsy();
|
|
91
|
-
expect(isMinLength(4, arr)).toBeFalsy();
|
|
92
|
-
});
|
|
93
|
-
test('Test minLength', () => {
|
|
94
|
-
const arr = [];
|
|
95
|
-
arr.push('a', 'b', 'c');
|
|
96
|
-
minLength('foo', 3, 'bar');
|
|
97
|
-
minLength('foo', 3, null);
|
|
98
|
-
minLength('foo', 3, undefined);
|
|
99
|
-
minLength('foo', 3, arr);
|
|
100
|
-
expect(() => minLength('foo', 4, 'baz')).toThrow('length of foo may not be less than 4');
|
|
101
|
-
expect(() => minLength('foo', 4, arr)).toThrow('length of foo may not be less than 4');
|
|
102
|
-
});
|
|
103
|
-
test('Test isNumber', () => {
|
|
104
|
-
expect(isNumber(1)).toBeTruthy();
|
|
105
|
-
expect(isNumber('1')).toBeTruthy();
|
|
106
|
-
expect(isNumber(null)).toBeTruthy();
|
|
107
|
-
expect(isNumber(undefined)).toBeTruthy();
|
|
108
|
-
expect(isNumber('bar')).toBeFalsy();
|
|
109
|
-
});
|
|
110
|
-
test('Test number', () => {
|
|
111
|
-
number('foo', 1);
|
|
112
|
-
number('foo', '1');
|
|
113
|
-
number('foo', null);
|
|
114
|
-
number('foo', undefined);
|
|
115
|
-
expect(() => number('foo', 'bar')).toThrow('foo is not a number');
|
|
116
|
-
});
|
|
117
|
-
test('Test isMinValue', () => {
|
|
118
|
-
expect(isMinValue(1, 2)).toBeTruthy();
|
|
119
|
-
expect(isMinValue(1, '2')).toBeTruthy();
|
|
120
|
-
expect(isMinValue(1, null)).toBeTruthy();
|
|
121
|
-
expect(isMinValue(1, undefined)).toBeTruthy();
|
|
122
|
-
expect(isMinValue(2, 1)).toBeFalsy();
|
|
123
|
-
});
|
|
124
|
-
test('Test minValue', () => {
|
|
125
|
-
minValue('foo', 1, 2);
|
|
126
|
-
minValue('foo', 1, '2');
|
|
127
|
-
minValue('foo', 1, null);
|
|
128
|
-
minValue('foo', 1, undefined);
|
|
129
|
-
expect(() => minValue('foo', 2, 1)).toThrow('foo may not be less than 2');
|
|
130
|
-
});
|
|
131
|
-
test('Test isMaxValue', () => {
|
|
132
|
-
expect(isMaxValue(2, 1)).toBeTruthy();
|
|
133
|
-
expect(isMaxValue(2, '1')).toBeTruthy();
|
|
134
|
-
expect(isMaxValue(2, null)).toBeTruthy();
|
|
135
|
-
expect(isMaxValue(2, undefined)).toBeTruthy();
|
|
136
|
-
expect(isMaxValue(1, 2)).toBeFalsy();
|
|
137
|
-
});
|
|
138
|
-
test('Test maxValue', () => {
|
|
139
|
-
maxValue('foo', 2, 1);
|
|
140
|
-
maxValue('foo', 2, '1');
|
|
141
|
-
maxValue('foo', 2, null);
|
|
142
|
-
maxValue('foo', 2, undefined);
|
|
143
|
-
expect(() => maxValue('foo', 1, 2)).toThrow('foo may not be greater than 1');
|
|
144
|
-
});
|
|
145
|
-
test('Test isBetweenValues', () => {
|
|
146
|
-
expect(isBetweenValues(1, 3, 2)).toBeTruthy();
|
|
147
|
-
expect(isBetweenValues(1, 3, '2')).toBeTruthy();
|
|
148
|
-
expect(isBetweenValues(1, 3, null)).toBeTruthy();
|
|
149
|
-
expect(isBetweenValues(1, 3, undefined)).toBeTruthy();
|
|
150
|
-
expect(isBetweenValues(1, 3, 4)).toBeFalsy();
|
|
151
|
-
});
|
|
152
|
-
test('Test betweenValues', () => {
|
|
153
|
-
betweenValues('foo', 1, 3, 2);
|
|
154
|
-
betweenValues('foo', 1, 3, '2');
|
|
155
|
-
betweenValues('foo', 1, 3, null);
|
|
156
|
-
betweenValues('foo', 1, 3, undefined);
|
|
157
|
-
expect(() => betweenValues('foo', 1, 3, 4)).toThrow('foo must be between 1 and 3');
|
|
158
|
-
});
|
|
159
|
-
test('Test isValidString', () => {
|
|
160
|
-
expect(isValidString({ required: true }, 'bar')).toBeTruthy();
|
|
161
|
-
expect(isValidString({ required: true }, ' ')).toBeTruthy();
|
|
162
|
-
expect(isValidString({ required: true }, '')).toBeTruthy();
|
|
163
|
-
expect(isValidString({ required: false }, null)).toBeTruthy();
|
|
164
|
-
expect(isValidString({ required: false }, undefined)).toBeTruthy();
|
|
165
|
-
expect(isValidString({ required: true }, null)).toBeFalsy();
|
|
166
|
-
expect(isValidString({ required: true }, undefined)).toBeFalsy();
|
|
167
|
-
});
|
|
168
|
-
test('Test validString', () => {
|
|
169
|
-
validString('foo', { required: true }, 'bar');
|
|
170
|
-
validString('foo', { required: true }, ' ');
|
|
171
|
-
validString('foo', { required: true }, '');
|
|
172
|
-
validString('foo', { required: false }, null);
|
|
173
|
-
validString('foo', { required: false }, undefined);
|
|
174
|
-
expect(() => validString('foo', { required: true }, null)).toThrow('foo may not be null or undefined');
|
|
175
|
-
expect(() => validString('foo', { required: true }, undefined)).toThrow('foo may not be null or undefined');
|
|
176
|
-
});
|
|
177
|
-
//# sourceMappingURL=validators.test.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validators.test.mjs","sourceRoot":"","sources":["../../src/validator/validators.test.mts"],"names":[],"mappings":"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","sourcesContent":["import {test, expect} from 'vitest';\nimport {\n betweenValues,\n email,\n number,\n maxLength,\n maxValue,\n minLength,\n minValue,\n notBlank,\n notEmpty,\n notNull,\n validString,\n isNotNull,\n isNotEmpty,\n isNotBlank,\n match,\n isMatch,\n isEmail,\n isMaxLength,\n isMinLength,\n isNumber,\n isMinValue,\n isMaxValue,\n isBetweenValues,\n isValidString,\n} from './validators.mjs';\n\ntest('Test isNotNull', () => {\n expect(isNotNull('bar')).toBeTruthy();\n expect(isNotNull(null)).toBeFalsy();\n expect(isNotNull(undefined)).toBeFalsy();\n});\n\ntest('Test notNull', () => {\n notNull('foo', 'bar');\n expect(() => notNull('foo', null)).toThrow(\n 'foo may not be null or undefined'\n );\n expect(() => notNull('foo', undefined)).toThrow(\n 'foo may not be null or undefined'\n );\n});\n\ntest('Test isNotEmpty', () => {\n expect(isNotEmpty('bar')).toBeTruthy();\n expect(isNotEmpty('')).toBeFalsy();\n expect(isNotEmpty(null)).toBeFalsy();\n expect(isNotEmpty(undefined)).toBeFalsy();\n});\n\ntest('Test notEmpty', () => {\n notEmpty('foo', 'bar');\n expect(() => notEmpty('foo', '')).toThrow('foo may not be empty');\n expect(() => notEmpty('foo', null)).toThrow('foo may not be empty');\n expect(() => notEmpty('foo', undefined)).toThrow('foo may not be empty');\n});\n\ntest('Test isNotBlank', () => {\n expect(isNotBlank('bar')).toBeTruthy();\n expect(isNotBlank(' ')).toBeFalsy();\n expect(isNotBlank('')).toBeFalsy();\n expect(isNotBlank(null)).toBeFalsy();\n expect(isNotBlank(undefined)).toBeFalsy();\n});\n\ntest('Test notBlank', () => {\n notBlank('foo', 'bar');\n expect(() => notBlank('foo', ' ')).toThrow('foo may not be blank');\n expect(() => notBlank('foo', '')).toThrow('foo may not be blank');\n expect(() => notBlank('foo', null)).toThrow('foo may not be blank');\n expect(() => notBlank('foo', undefined)).toThrow('foo may not be blank');\n});\n\ntest('Test isMatch', () => {\n expect(isMatch(/bar/, 'bar')).toBeTruthy();\n expect(isMatch(/bar/, null)).toBeTruthy();\n expect(isMatch(/bar/, undefined)).toBeTruthy();\n expect(isMatch(/bar/, 'baz')).toBeFalsy();\n});\n\ntest('Test match', () => {\n match('foo', /bar/, 'bar');\n match('foo', /bar/, null);\n match('foo', /bar/, undefined);\n expect(() => match('foo', /bar/, 'baz')).toThrow('foo must match /bar/');\n});\n\ntest('Test isEmail', () => {\n expect(isEmail('test@example.com')).toBeTruthy();\n expect(isEmail(null)).toBeTruthy();\n expect(isEmail(undefined)).toBeTruthy();\n expect(isEmail('test')).toBeFalsy();\n});\n\ntest('Test email', () => {\n email('foo', 'test@example.com');\n email('foo', null);\n email('foo', undefined);\n expect(() => email('foo', 'test')).toThrow(\n 'foo is not a valid email address'\n );\n});\n\ntest('Test isMaxLength', () => {\n const arr: string[] = [];\n arr.push('a', 'b', 'c');\n expect(isMaxLength(3, 'bar')).toBeTruthy();\n expect(isMaxLength(3, null)).toBeTruthy();\n expect(isMaxLength(3, undefined)).toBeTruthy();\n expect(isMaxLength(3, arr)).toBeTruthy();\n expect(isMaxLength(2, 'baz')).toBeFalsy();\n expect(isMaxLength(2, arr)).toBeFalsy();\n});\n\ntest('Test maxLength', () => {\n const arr: string[] = [];\n arr.push('a', 'b', 'c');\n maxLength('foo', 3, 'bar');\n maxLength('foo', 3, null);\n maxLength('foo', 3, undefined);\n maxLength('foo', 3, arr);\n expect(() => maxLength('foo', 2, 'baz')).toThrow(\n 'length of foo may not exceed 2'\n );\n expect(() => maxLength('foo', 2, arr)).toThrow(\n 'length of foo may not exceed 2'\n );\n});\n\ntest('Test isMinLength', () => {\n const arr: string[] = [];\n arr.push('a', 'b', 'c');\n expect(isMinLength(3, 'bar')).toBeTruthy();\n expect(isMinLength(3, null)).toBeTruthy();\n expect(isMinLength(3, undefined)).toBeTruthy();\n expect(isMinLength(3, arr)).toBeTruthy();\n expect(isMinLength(4, 'baz')).toBeFalsy();\n expect(isMinLength(4, arr)).toBeFalsy();\n});\n\ntest('Test minLength', () => {\n const arr: string[] = [];\n arr.push('a', 'b', 'c');\n minLength('foo', 3, 'bar');\n minLength('foo', 3, null);\n minLength('foo', 3, undefined);\n minLength('foo', 3, arr);\n expect(() => minLength('foo', 4, 'baz')).toThrow(\n 'length of foo may not be less than 4'\n );\n expect(() => minLength('foo', 4, arr)).toThrow(\n 'length of foo may not be less than 4'\n );\n});\n\ntest('Test isNumber', () => {\n expect(isNumber(1)).toBeTruthy();\n expect(isNumber('1')).toBeTruthy();\n expect(isNumber(null)).toBeTruthy();\n expect(isNumber(undefined)).toBeTruthy();\n expect(isNumber('bar')).toBeFalsy();\n});\n\ntest('Test number', () => {\n number('foo', 1);\n number('foo', '1');\n number('foo', null);\n number('foo', undefined);\n expect(() => number('foo', 'bar')).toThrow('foo is not a number');\n});\n\ntest('Test isMinValue', () => {\n expect(isMinValue(1, 2)).toBeTruthy();\n expect(isMinValue(1, '2')).toBeTruthy();\n expect(isMinValue(1, null)).toBeTruthy();\n expect(isMinValue(1, undefined)).toBeTruthy();\n expect(isMinValue(2, 1)).toBeFalsy();\n});\n\ntest('Test minValue', () => {\n minValue('foo', 1, 2);\n minValue('foo', 1, '2');\n minValue('foo', 1, null);\n minValue('foo', 1, undefined);\n expect(() => minValue('foo', 2, 1)).toThrow('foo may not be less than 2');\n});\n\ntest('Test isMaxValue', () => {\n expect(isMaxValue(2, 1)).toBeTruthy();\n expect(isMaxValue(2, '1')).toBeTruthy();\n expect(isMaxValue(2, null)).toBeTruthy();\n expect(isMaxValue(2, undefined)).toBeTruthy();\n expect(isMaxValue(1, 2)).toBeFalsy();\n});\n\ntest('Test maxValue', () => {\n maxValue('foo', 2, 1);\n maxValue('foo', 2, '1');\n maxValue('foo', 2, null);\n maxValue('foo', 2, undefined);\n expect(() => maxValue('foo', 1, 2)).toThrow('foo may not be greater than 1');\n});\n\ntest('Test isBetweenValues', () => {\n expect(isBetweenValues(1, 3, 2)).toBeTruthy();\n expect(isBetweenValues(1, 3, '2')).toBeTruthy();\n expect(isBetweenValues(1, 3, null)).toBeTruthy();\n expect(isBetweenValues(1, 3, undefined)).toBeTruthy();\n expect(isBetweenValues(1, 3, 4)).toBeFalsy();\n});\n\ntest('Test betweenValues', () => {\n betweenValues('foo', 1, 3, 2);\n betweenValues('foo', 1, 3, '2');\n betweenValues('foo', 1, 3, null);\n betweenValues('foo', 1, 3, undefined);\n expect(() => betweenValues('foo', 1, 3, 4)).toThrow(\n 'foo must be between 1 and 3'\n );\n});\n\ntest('Test isValidString', () => {\n expect(isValidString({required: true}, 'bar')).toBeTruthy();\n expect(isValidString({required: true}, ' ')).toBeTruthy();\n expect(isValidString({required: true}, '')).toBeTruthy();\n expect(isValidString({required: false}, null)).toBeTruthy();\n expect(isValidString({required: false}, undefined)).toBeTruthy();\n expect(isValidString({required: true}, null)).toBeFalsy();\n expect(isValidString({required: true}, undefined)).toBeFalsy();\n});\n\ntest('Test validString', () => {\n validString('foo', {required: true}, 'bar');\n validString('foo', {required: true}, ' ');\n validString('foo', {required: true}, '');\n validString('foo', {required: false}, null);\n validString('foo', {required: false}, undefined);\n expect(() => validString('foo', {required: true}, null)).toThrow(\n 'foo may not be null or undefined'\n );\n expect(() => validString('foo', {required: true}, undefined)).toThrow(\n 'foo may not be null or undefined'\n );\n});\n"]}
|