UNPKG

validata

Version:

Type safe data validation and sanitization

67 lines 3.52 kB
"use strict"; 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