validata
Version:
Type safe data validation and sanitization
144 lines • 6.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const luxon_1 = require("luxon");
const array_1 = require("./array");
const boolean_1 = require("./boolean");
const check_1 = require("./check");
const common_1 = require("./common");
const date_1 = require("./date");
const date_time_1 = require("./date-time");
const number_1 = require("./number");
const object_1 = require("./object");
const record_1 = require("./record");
const string_1 = require("./string");
const test_helpers_1 = require("./test-helpers");
const tuple_1 = require("./tuple");
const url_1 = require("./url");
describe('common tests', () => {
const dateTime = luxon_1.DateTime.local();
const date = new Date();
const url = new URL('http://localhost');
const testCases = [
[ ]],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ], [(0, number_1.isNumber)()]],
[ ],
[ ],
[ ],
[ ],
[ ],
];
describe('createNullableCheck', () => {
it.each(testCases)('createIsNullableCheck %#', (check, value, contract = undefined) => {
const fut = check(contract);
const futNull = (0, common_1.isNullable)(check(contract));
(0, test_helpers_1.expectValue)(futNull, null, null);
expect(fut.process(value)).toEqual(futNull.process(value));
});
it.each([
[ ],
[ ]],
[ ], null, [1, 2, 3]],
[ ],
[ ]],
[ ], null, [1, 2, 3]],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ], [1, 'text'], [(0, number_1.isNumber)(), (0, string_1.isString)()]],
[ ], null, [1, 'text'], [(0, number_1.isNumber)(), (0, string_1.isString)()]],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
])('createAsNullableCheck %#', (check, value = undefined, defaultValue = null, expectedValue = defaultValue, contract = undefined) => {
const futNull = (0, common_1.asNullable)(check(contract), { default: defaultValue });
expect(futNull.process(value)).toEqual({ value: expectedValue });
});
it('result is intact during an issue detection', () => {
const fut = (0, object_1.isObject)({ key: (0, boolean_1.isBoolean)() });
const futNull = (0, object_1.isObject)({ key: (0, common_1.asNullable)((0, boolean_1.isBoolean)()) });
const result = fut.process({ key: [] });
const resultNull = futNull.process({ key: [] });
expect(result).toEqual(resultNull);
});
});
describe('checkAsync', () => {
it.each(testCases)('async check run %#', async (check, value, contract = undefined) => {
const futAsync = {
process: (value) => Promise.resolve(check(contract).process(value)),
};
const result = (0, check_1.checkAsync)(futAsync, () => Promise.resolve(value));
await expect(result).resolves.not.toThrow();
});
});
});
//# sourceMappingURL=common.test.js.map