UNPKG

computed-types

Version:

Runtime validation types for TypeScript.

45 lines (32 loc) 4.24 kB
"use strict"; require("mocha"); var _chai = require("chai"); var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised")); var _errors = require("./errors"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _chai.use)(_chaiAsPromised.default); /* eslint-disable @typescript-eslint/no-explicit-any */ describe('schema', () => { describe('errors', () => { describe('ValidationError', () => { it('should be instance of Error', () => { const err = new _errors.ValidationError('foo'); _chai.assert.instanceOf(err, Error); _chai.assert.instanceOf(err, TypeError); }); it('should have error properties', () => { const err = new _errors.ValidationError('foo'); _chai.assert.equal(String(err), 'ValidationError: foo'); _chai.assert.equal(err.message, 'foo'); _chai.assert.include(err.stack, 'ValidationError: foo'); }); it('should have convert to JSON nicely', () => { const err = new _errors.ValidationError('foo'); _chai.assert.deepEqual(JSON.parse(JSON.stringify(err)), { message: 'foo' }); }); }); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvZXJyb3JzLnRlc3QudHMiXSwibmFtZXMiOlsiY2hhaUFzUHJvbWlzZWQiLCJkZXNjcmliZSIsIml0IiwiZXJyIiwiVmFsaWRhdGlvbkVycm9yIiwiYXNzZXJ0IiwiaW5zdGFuY2VPZiIsIkVycm9yIiwiVHlwZUVycm9yIiwiZXF1YWwiLCJTdHJpbmciLCJtZXNzYWdlIiwiaW5jbHVkZSIsInN0YWNrIiwiZGVlcEVxdWFsIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsZUFBSUEsdUJBQUo7QUFFQTs7QUFFQUMsUUFBUSxDQUFDLFFBQUQsRUFBVyxNQUFNO0FBQ3ZCQSxFQUFBQSxRQUFRLENBQUMsUUFBRCxFQUFXLE1BQU07QUFDdkJBLElBQUFBLFFBQVEsQ0FBQyxpQkFBRCxFQUFvQixNQUFNO0FBQ2hDQyxNQUFBQSxFQUFFLENBQUMsNkJBQUQsRUFBZ0MsTUFBTTtBQUN0QyxjQUFNQyxHQUFHLEdBQUcsSUFBSUMsdUJBQUosQ0FBb0IsS0FBcEIsQ0FBWjs7QUFFQUMscUJBQU9DLFVBQVAsQ0FBa0JILEdBQWxCLEVBQXVCSSxLQUF2Qjs7QUFDQUYscUJBQU9DLFVBQVAsQ0FBa0JILEdBQWxCLEVBQXVCSyxTQUF2QjtBQUNELE9BTEMsQ0FBRjtBQU9BTixNQUFBQSxFQUFFLENBQUMsOEJBQUQsRUFBaUMsTUFBTTtBQUN2QyxjQUFNQyxHQUFHLEdBQUcsSUFBSUMsdUJBQUosQ0FBb0IsS0FBcEIsQ0FBWjs7QUFFQUMscUJBQU9JLEtBQVAsQ0FBYUMsTUFBTSxDQUFDUCxHQUFELENBQW5CLEVBQTBCLHNCQUExQjs7QUFDQUUscUJBQU9JLEtBQVAsQ0FBYU4sR0FBRyxDQUFDUSxPQUFqQixFQUEwQixLQUExQjs7QUFDQU4scUJBQU9PLE9BQVAsQ0FBZVQsR0FBRyxDQUFDVSxLQUFuQixFQUEwQixzQkFBMUI7QUFDRCxPQU5DLENBQUY7QUFRQVgsTUFBQUEsRUFBRSxDQUFDLG9DQUFELEVBQXVDLE1BQU07QUFDN0MsY0FBTUMsR0FBRyxHQUFHLElBQUlDLHVCQUFKLENBQW9CLEtBQXBCLENBQVo7O0FBRUFDLHFCQUFPUyxTQUFQLENBQWlCQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0QsSUFBSSxDQUFDRSxTQUFMLENBQWVkLEdBQWYsQ0FBWCxDQUFqQixFQUFrRDtBQUFFUSxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFsRDtBQUNELE9BSkMsQ0FBRjtBQUtELEtBckJPLENBQVI7QUFzQkQsR0F2Qk8sQ0FBUjtBQXdCRCxDQXpCTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdtb2NoYSc7XG5pbXBvcnQgeyBhc3NlcnQsIHVzZSB9IGZyb20gJ2NoYWknO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG51c2UoY2hhaUFzUHJvbWlzZWQpO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cbmRlc2NyaWJlKCdzY2hlbWEnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdlcnJvcnMnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ1ZhbGlkYXRpb25FcnJvcicsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgYmUgaW5zdGFuY2Ugb2YgRXJyb3InLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ2ZvbycpO1xuXG4gICAgICAgIGFzc2VydC5pbnN0YW5jZU9mKGVyciwgRXJyb3IpO1xuICAgICAgICBhc3NlcnQuaW5zdGFuY2VPZihlcnIsIFR5cGVFcnJvcik7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYXZlIGVycm9yIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ2ZvbycpO1xuXG4gICAgICAgIGFzc2VydC5lcXVhbChTdHJpbmcoZXJyKSwgJ1ZhbGlkYXRpb25FcnJvcjogZm9vJyk7XG4gICAgICAgIGFzc2VydC5lcXVhbChlcnIubWVzc2FnZSwgJ2ZvbycpO1xuICAgICAgICBhc3NlcnQuaW5jbHVkZShlcnIuc3RhY2ssICdWYWxpZGF0aW9uRXJyb3I6IGZvbycpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGF2ZSBjb252ZXJ0IHRvIEpTT04gbmljZWx5JywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnIgPSBuZXcgVmFsaWRhdGlvbkVycm9yKCdmb28nKTtcblxuICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXJyKSksIHsgbWVzc2FnZTogJ2ZvbycgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==