computed-types
Version:
Runtime validation types for TypeScript.
45 lines (32 loc) • 4.24 kB
JavaScript
;
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==