UNPKG

validata

Version:

Type safe data validation and sanitization

81 lines 3.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expectFormatIssue = void 0; const string_1 = require("./string"); const string_format_1 = require("./string-format"); const test_helpers_1 = require("./test-helpers"); const types_1 = require("./types"); const expectFormatIssue = (fut, value, expectedFormat) => { const result = fut.process(value); if (!(0, types_1.isIssue)(result)) { fail('no issue'); } expect(result.issues).toEqual(expect.arrayContaining([ expect.objectContaining({ info: expect.objectContaining({ expectedFormat, }), reason: 'incorrect-format', }), ])); }; exports.expectFormatIssue = expectFormatIssue; describe('StringFormat', () => { describe('ULID', () => { const fut = (0, string_1.isString)({ format: string_format_1.StringFormat.ULID() }); it('have issues with invalid ULIDs', () => { (0, exports.expectFormatIssue)(fut, '', 'ulid'); (0, exports.expectFormatIssue)(fut, 'test', 'ulid'); (0, exports.expectFormatIssue)(fut, 'test01EFNX7ZQ36RXJV136T0SP4Y77', 'ulid'); (0, exports.expectFormatIssue)(fut, '01EFNX7ZQ36RXJV136T0SP4Y77test', 'ulid'); (0, exports.expectFormatIssue)(fut, '{01EFNX7ZQ36RXJV136T0SP4Y77}', 'ulid'); (0, exports.expectFormatIssue)(fut, '01EFNX7Z-Q36R-XJV1-36T0-SP4Y77', 'ulid'); (0, exports.expectFormatIssue)(fut, 'a4beb195-6171-4542-9cc2-1c75f5688095', 'ulid'); }); it('accept ULIDs', () => { (0, test_helpers_1.expectSuccess)(fut, '01EFNX7ZQ36RXJV136T0SP4Y77'); (0, test_helpers_1.expectSuccess)(fut, '01EFNX7SQ8A5YPF2YJDVJTY1H5'); }); }); describe('UUID', () => { const fut = (0, string_1.isString)({ format: string_format_1.StringFormat.UUID() }); it('have issues with invalid UUIDs', () => { (0, exports.expectFormatIssue)(fut, '', 'uuid'); (0, exports.expectFormatIssue)(fut, 'test', 'uuid'); (0, exports.expectFormatIssue)(fut, 'testa4beb195-6171-4542-9cc2-1c75f5688095', 'uuid'); (0, exports.expectFormatIssue)(fut, 'a4beb195-6171-4542-9cc2-1c75f5688095test', 'uuid'); (0, exports.expectFormatIssue)(fut, '{a4beb195-6171-4542-9cc2-1c75f5688095}', 'uuid'); }); it('accept UUIDs', () => { (0, test_helpers_1.expectSuccess)(fut, 'b8493e8b-fdf8-4420-ab63-0701a6850da6'); (0, test_helpers_1.expectSuccess)(fut, '52491B51-E733-43A2-BCDE-1CCE35EE82A6'); }); }); describe('email', () => { const fut = (0, string_1.isString)({ format: string_format_1.StringFormat.email() }); it('have issues with invalid email addresses', () => { (0, exports.expectFormatIssue)(fut, '', 'email'); (0, exports.expectFormatIssue)(fut, 'test', 'email'); (0, exports.expectFormatIssue)(fut, 'foo@', 'email'); (0, exports.expectFormatIssue)(fut, '@home', 'email'); }); it('accept email addresses', () => { (0, test_helpers_1.expectSuccess)(fut, 'me@work.com'); (0, test_helpers_1.expectSuccess)(fut, 'me@my.home.com'); }); }); }); describe('maybe StringFormat', () => { describe('ULID', () => { const fut = (0, string_1.maybeString)({ format: string_format_1.StringFormat.ULID() }); it('undefined', () => { (0, test_helpers_1.expectSuccess)(fut, undefined); (0, test_helpers_1.expectSuccess)(fut, null); }); it('value', () => { (0, test_helpers_1.expectSuccess)(fut, '01EFNX7ZQ36RXJV136T0SP4Y77'); (0, test_helpers_1.expectSuccess)(fut, '01EFNX7SQ8A5YPF2YJDVJTY1H5'); }); }); }); //# sourceMappingURL=string-format.test.js.map