UNPKG

computed-types

Version:

Runtime validation types for TypeScript.

134 lines (114 loc) 12.9 kB
"use strict"; require("mocha"); var _chai = require("chai"); var _switch = require("./switch"); var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _chai.use)(_chaiAsPromised.default); /* eslint-disable @typescript-eslint/no-explicit-any */ describe('schema/switch', () => { describe('findSwitchKey', () => { it('should not find on once candidate', () => { _chai.assert.equal((0, _switch.findSwitchKey)(null), null); _chai.assert.equal((0, _switch.findSwitchKey)('foo'), null); _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }), null); }); it('should not find on primitive candidates', () => { _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, null), null); _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, 'foo'), null); _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, undefined), null); }); it('should not find on non-primitive keys', () => { _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, { key: () => null }), null); _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, { key: {} }), null); }); it('should find primitive switches', () => { _chai.assert.deepEqual((0, _switch.findSwitchKey)({ key: 'foo' }, { key: 'bar' }), ['key', new Map([['foo', 0], ['bar', 1]])]); _chai.assert.deepEqual((0, _switch.findSwitchKey)({ key: 'foo' }, { key: 1, bar: 3 }), ['key', new Map([['foo', 0], [1, 1]])]); _chai.assert.deepEqual((0, _switch.findSwitchKey)({ key: 'foo' }, { bar: 3 }), ['key', new Map([['foo', 0], [undefined, 1]])]); _chai.assert.deepEqual((0, _switch.findSwitchKey)({ key: 'foo', bar: 1 }, { key: 'foo', bar: 2 }), ['bar', new Map([[1, 0], [2, 1]])]); _chai.assert.deepEqual((0, _switch.findSwitchKey)({ key: 'foo', bar: 2 }, { key: 'foo' }), ['bar', new Map([[2, 0], [undefined, 1]])]); }); it('should not find on equal switches', () => { _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, { key: 'foo' }), null); }); it('should not find on hidden properties', () => { _chai.assert.equal((0, _switch.findSwitchKey)({ key: 'foo' }, { key: 'foo', bar: 1 }), null); }); }); describe('generateSwitch', () => { it('should generate a switch', () => { const validator = (0, _switch.generateSwitch)(['key', new Map([['foo', 0], ['bar', 1]])], [x => [0, x], x => [1, x]]); _chai.assert.deepEqual(validator({ key: 'foo', value: 1 }), [0, { key: 'foo', value: 1 }]); _chai.assert.deepEqual(validator({ key: 'bar', value: 1 }), [1, { key: 'bar', value: 1 }]); _chai.assert.deepEqual(validator('foo'), [0, 'foo']); _chai.assert.deepEqual(validator({ key: 'hello' }), [0, { key: 'hello' }]); }); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvc3dpdGNoLnRlc3QudHMiXSwibmFtZXMiOlsiY2hhaUFzUHJvbWlzZWQiLCJkZXNjcmliZSIsIml0IiwiYXNzZXJ0IiwiZXF1YWwiLCJrZXkiLCJ1bmRlZmluZWQiLCJkZWVwRXF1YWwiLCJNYXAiLCJiYXIiLCJ2YWxpZGF0b3IiLCJ4IiwidmFsdWUiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFHQSxlQUFJQSx1QkFBSjtBQUVBOztBQUVBQyxRQUFRLENBQUMsZUFBRCxFQUFrQixNQUFNO0FBQzlCQSxFQUFBQSxRQUFRLENBQUMsZUFBRCxFQUFrQixNQUFNO0FBQzlCQyxJQUFBQSxFQUFFLENBQUMsbUNBQUQsRUFBc0MsTUFBTTtBQUM1Q0MsbUJBQU9DLEtBQVAsQ0FBYSwyQkFBYyxJQUFkLENBQWIsRUFBa0MsSUFBbEM7O0FBQ0FELG1CQUFPQyxLQUFQLENBQWEsMkJBQWMsS0FBZCxDQUFiLEVBQW1DLElBQW5DOztBQUNBRCxtQkFBT0MsS0FBUCxDQUFhLDJCQUFjO0FBQUVDLFFBQUFBLEdBQUcsRUFBRTtBQUFQLE9BQWQsQ0FBYixFQUE0QyxJQUE1QztBQUNELEtBSkMsQ0FBRjtBQU1BSCxJQUFBQSxFQUFFLENBQUMseUNBQUQsRUFBNEMsTUFBTTtBQUNsREMsbUJBQU9DLEtBQVAsQ0FBYSwyQkFBYztBQUFFQyxRQUFBQSxHQUFHLEVBQUU7QUFBUCxPQUFkLEVBQThCLElBQTlCLENBQWIsRUFBa0QsSUFBbEQ7O0FBQ0FGLG1CQUFPQyxLQUFQLENBQWEsMkJBQWM7QUFBRUMsUUFBQUEsR0FBRyxFQUFFO0FBQVAsT0FBZCxFQUE4QixLQUE5QixDQUFiLEVBQW1ELElBQW5EOztBQUNBRixtQkFBT0MsS0FBUCxDQUFhLDJCQUFjO0FBQUVDLFFBQUFBLEdBQUcsRUFBRTtBQUFQLE9BQWQsRUFBOEJDLFNBQTlCLENBQWIsRUFBdUQsSUFBdkQ7QUFDRCxLQUpDLENBQUY7QUFNQUosSUFBQUEsRUFB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U0FBUCxDQUFpQkcsU0FBUyxDQUFDLEtBQUQsQ0FBMUIsRUFBbUMsQ0FBQyxDQUFELEVBQUksS0FBSixDQUFuQzs7QUFDQVAsbUJBQU9JLFNBQVAsQ0FBaUJHLFNBQVMsQ0FBQztBQUFFTCxRQUFBQSxHQUFHLEVBQUU7QUFBUCxPQUFELENBQTFCLEVBQThDLENBQUMsQ0FBRCxFQUFJO0FBQUVBLFFBQUFBLEdBQUcsRUFBRTtBQUFQLE9BQUosQ0FBOUM7QUFDRCxLQXpCQyxDQUFGO0FBMEJELEdBM0JPLENBQVI7QUE0QkQsQ0FyR08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnbW9jaGEnO1xuaW1wb3J0IHsgYXNzZXJ0LCB1c2UgfSBmcm9tICdjaGFpJztcbmltcG9ydCB7IGZpbmRTd2l0Y2hLZXksIGdlbmVyYXRlU3dpdGNoIH0gZnJvbSAnLi9zd2l0Y2gnO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnLi91dGlscyc7XG5cbnVzZShjaGFpQXNQcm9taXNlZCk7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuZGVzY3JpYmUoJ3NjaGVtYS9zd2l0Y2gnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdmaW5kU3dpdGNoS2V5JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgbm90IGZpbmQgb24gb25jZSBjYW5kaWRhdGUnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQuZXF1YWwoZmluZFN3aXRjaEtleShudWxsKSwgbnVsbCk7XG4gICAgICBhc3NlcnQuZXF1YWwoZmluZFN3aXRjaEtleSgnZm9vJyksIG51bGwpO1xuICAgICAgYXNzZXJ0LmVxdWFsKGZpbmRTd2l0Y2hLZXkoeyBrZXk6ICdmb28nIH0pLCBudWxsKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IGZpbmQgb24gcHJpbWl0aXZlIGNhbmRpZGF0ZXMnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQuZXF1YWwoZmluZFN3aXRjaEtleSh7IGtleTogJ2ZvbycgfSwgbnVsbCksIG51bGwpO1xuICAgICAgYXNzZXJ0LmVxdWFsKGZpbmRTd2l0Y2hLZXkoeyBrZXk6ICdmb28nIH0sICdmb28nKSwgbnVsbCk7XG4gICAgICBhc3NlcnQuZXF1YWwoZmluZFN3aXRjaEtleSh7IGtleTogJ2ZvbycgfSwgdW5kZWZpbmVkKSwgbnVsbCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBmaW5kIG9uIG5vbi1wcmltaXRpdmUga2V5cycsICgpID0+IHtcbiAgICAgIGFzc2VydC5lcXVhbChmaW5kU3dpdGNoS2V5KHsga2V5OiAnZm9vJyB9LCB7IGtleTogKCkgPT4gbnVsbCB9KSwgbnVsbCk7XG4gICAgICBhc3NlcnQuZXF1YWwoZmluZFN3aXRjaEtleSh7IGtleTogJ2ZvbycgfSwgeyBrZXk6IHt9IH0pLCBudWxsKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmluZCBwcmltaXRpdmUgc3dpdGNoZXMnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGZpbmRTd2l0Y2hLZXkoeyBrZXk6ICdmb28nIH0sIHsga2V5OiAnYmFyJyB9KSwgW1xuICAgICAgICAna2V5JyxcbiAgICAgICAgbmV3IE1hcChbXG4gICAgICAgICAgWydmb28nLCAwXSxcbiAgICAgICAgICBbJ2JhcicsIDFdLFxuICAgICAgICBdKSxcbiAgICAgIF0pO1xuXG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGZpbmRTd2l0Y2hLZXkoeyBrZXk6ICdmb28nIH0sIHsga2V5OiAxLCBiYXI6IDMgfSksIFtcbiAgICAgICAgJ2tleScsXG4gICAgICAgIG5ldyBNYXA8UHJpbWl0aXZlLCBudW1iZXI+KFtcbiAgICAgICAgICBbJ2ZvbycsIDBdLFxuICAgICAgICAgIFsxLCAxXSxcbiAgICAgICAgXSksXG4gICAgICBdKTtcblxuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChmaW5kU3dpdGNoS2V5KHsga2V5OiAnZm9vJyB9LCB7IGJhcjogMyB9KSwgW1xuICAgICAgICAna2V5JyxcbiAgICAgICAgbmV3IE1hcDxQcmltaXRpdmUsIG51bWJlcj4oW1xuICAgICAgICAgIFsnZm9vJywgMF0sXG4gICAgICAgICAgW3VuZGVmaW5lZCwgMV0sXG4gICAgICAgIF0pLFxuICAgICAgXSk7XG5cbiAgICAgIGFzc2VydC5kZWVwRXF1YWwoXG4gICAgICAgIGZpbmRTd2l0Y2hLZXkoeyBrZXk6ICdmb28nLCBiYXI6IDEgfSwgeyBrZXk6ICdmb28nLCBiYXI6IDIgfSksXG4gICAgICAgIFtcbiAgICAgICAgICAnYmFyJyxcbiAgICAgICAgICBuZXcgTWFwPFByaW1pdGl2ZSwgbnVtYmVyPihbXG4gICAgICAgICAgICBbMSwgMF0sXG4gICAgICAgICAgICBbMiwgMV0sXG4gICAgICAgICAgXSksXG4gICAgICAgIF0sXG4gICAgICApO1xuXG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGZpbmRTd2l0Y2hLZXkoeyBrZXk6ICdmb28nLCBiYXI6IDIgfSwgeyBrZXk6ICdmb28nIH0pLCBbXG4gICAgICAgICdiYXInLFxuICAgICAgICBuZXcgTWFwPFByaW1pdGl2ZSwgbnVtYmVyPihbXG4gICAgICAgICAgWzIsIDBdLFxuICAgICAgICAgIFt1bmRlZmluZWQsIDFdLFxuICAgICAgICBdKSxcbiAgICAgIF0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgZmluZCBvbiBlcXVhbCBzd2l0Y2hlcycsICgpID0+IHtcbiAgICAgIGFzc2VydC5lcXVhbChmaW5kU3dpdGNoS2V5KHsga2V5OiAnZm9vJyB9LCB7IGtleTogJ2ZvbycgfSksIG51bGwpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgZmluZCBvbiBoaWRkZW4gcHJvcGVydGllcycsICgpID0+IHtcbiAgICAgIGFzc2VydC5lcXVhbChmaW5kU3dpdGNoS2V5KHsga2V5OiAnZm9vJyB9LCB7IGtleTogJ2ZvbycsIGJhcjogMSB9KSwgbnVsbCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZW5lcmF0ZVN3aXRjaCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGEgc3dpdGNoJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gZ2VuZXJhdGVTd2l0Y2goXG4gICAgICAgIFtcbiAgICAgICAgICAna2V5JyxcbiAgICAgICAgICBuZXcgTWFwKFtcbiAgICAgICAgICAgIFsnZm9vJywgMF0sXG4gICAgICAgICAgICBbJ2JhcicsIDFdLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdLFxuICAgICAgICBbXG4gICAgICAgICAgKHg6IHVua25vd24pOiBbbnVtYmVyLCB1bmtub3duXSA9PiBbMCwgeF0sXG4gICAgICAgICAgKHg6IHVua25vd24pOiBbbnVtYmVyLCB1bmtub3duXSA9PiBbMSwgeF0sXG4gICAgICAgIF0sXG4gICAgICApO1xuXG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKHZhbGlkYXRvcih7IGtleTogJ2ZvbycsIHZhbHVlOiAxIH0pLCBbXG4gICAgICAgIDAsXG4gICAgICAgIHsga2V5OiAnZm9vJywgdmFsdWU6IDEgfSxcbiAgICAgIF0pO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2YWxpZGF0b3IoeyBrZXk6ICdiYXInLCB2YWx1ZTogMSB9KSwgW1xuICAgICAgICAxLFxuICAgICAgICB7IGtleTogJ2JhcicsIHZhbHVlOiAxIH0sXG4gICAgICBdKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwodmFsaWRhdG9yKCdmb28nKSwgWzAsICdmb28nXSk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKHZhbGlkYXRvcih7IGtleTogJ2hlbGxvJyB9KSwgWzAsIHsga2V5OiAnaGVsbG8nIH1dKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==