validata
Version:
Type safe data validation and sanitization
67 lines • 3.52 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const number_1 = require("./number");
const string_1 = require("./string");
const test_helpers_1 = require("./test-helpers");
const tuple_1 = require("./tuple");
describe('isTuple', () => {
it('will fail non-tuple', () => {
const fut = (0, tuple_1.isTuple)([]);
(0, test_helpers_1.expectIssue)(fut, null, 'not-defined');
(0, test_helpers_1.expectIssue)(fut, undefined, 'not-defined');
(0, test_helpers_1.expectIssue)(fut, 0, 'incorrect-type');
(0, test_helpers_1.expectIssue)(fut, new Date(), 'incorrect-type');
(0, test_helpers_1.expectIssue)(fut, {}, 'incorrect-type');
(0, test_helpers_1.expectIssue)(fut, 'test', 'incorrect-type');
});
it('will validate tuple', () => {
const fut = (0, tuple_1.isTuple)([
(0, number_1.isNumber)(),
(0, string_1.isString)(),
]);
(0, test_helpers_1.expectSuccess)(fut, [2, 'sd']);
(0, test_helpers_1.expectIssue)(fut, [2], 'expected-item', [1]);
(0, test_helpers_1.expectIssue)(fut, [-2, 0], 'incorrect-type', [1]);
(0, test_helpers_1.expectIssue)(fut, [-2, undefined], 'not-defined', [1]);
(0, test_helpers_1.expectIssue)(fut, [-2, 'string', 23], 'unexpected-item', [2]);
(0, test_helpers_1.expectIssue)(fut, [-2, 'string', undefined], 'unexpected-item', [2]);
});
it('will validate tuple', () => {
const fut = (0, tuple_1.isTuple)([]);
(0, test_helpers_1.expectIssue)(fut, [2], 'unexpected-item', [0]);
(0, test_helpers_1.expectIssue)(fut, [2, 'test'], 'unexpected-item', [0]);
(0, test_helpers_1.expectIssue)(fut, [2, 'test'], 'unexpected-item', [1]);
(0, test_helpers_1.expectIssue)(fut, [undefined], 'unexpected-item', [0]);
});
});
describe('maybeTuple', () => {
it('will fail non-tuple', () => {
const fut = (0, tuple_1.maybeTuple)([]);
(0, test_helpers_1.expectValue)(fut, null, undefined);
(0, test_helpers_1.expectValue)(fut, undefined, undefined);
(0, test_helpers_1.expectIssue)(fut, 0, 'incorrect-type');
(0, test_helpers_1.expectIssue)(fut, new Date(), 'incorrect-type');
(0, test_helpers_1.expectIssue)(fut, {}, 'incorrect-type');
(0, test_helpers_1.expectIssue)(fut, 'test', 'incorrect-type');
});
it('will validate tuple', () => {
const fut = (0, tuple_1.maybeTuple)([
(0, number_1.isNumber)(),
(0, string_1.isString)(),
]);
(0, test_helpers_1.expectSuccess)(fut, [2, 'sd']);
(0, test_helpers_1.expectIssue)(fut, [2], 'expected-item', [1]);
(0, test_helpers_1.expectIssue)(fut, [-2, 0], 'incorrect-type', [1]);
(0, test_helpers_1.expectIssue)(fut, [-2, undefined], 'not-defined', [1]);
(0, test_helpers_1.expectIssue)(fut, [-2, 'string', 23], 'unexpected-item', [2]);
(0, test_helpers_1.expectIssue)(fut, [-2, 'string', undefined], 'unexpected-item', [2]);
});
it('will validate tuple', () => {
const fut = (0, tuple_1.maybeTuple)([]);
(0, test_helpers_1.expectIssue)(fut, [2], 'unexpected-item', [0]);
(0, test_helpers_1.expectIssue)(fut, [2, 'test'], 'unexpected-item', [0]);
(0, test_helpers_1.expectIssue)(fut, [2, 'test'], 'unexpected-item', [1]);
(0, test_helpers_1.expectIssue)(fut, [undefined], 'unexpected-item', [0]);
});
});
//# sourceMappingURL=tuple.test.js.map
;