1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 'use strict';
- const expect = require('chai').expect;
- const errors = require('@sequelize/core/_non-semver-use-at-your-own-risk_/errors/index.js');
- const { AggregateError } = errors;
- describe('errors', () => {
- it('should maintain stack trace with message', () => {
- const errorsWithMessage = [
- 'BaseError',
- 'ValidationError',
- 'InstanceError',
- 'EmptyResultError',
- 'EagerLoadingError',
- 'AssociationError',
- 'QueryError',
- ];
- for (const errorName of errorsWithMessage) {
- function throwError() {
- throw new errors[errorName]('this is a message');
- }
- let err;
- try {
- throwError();
- } catch (error) {
- err = error;
- }
- expect(err).to.exist;
- const stackParts = err.stack.split('\n');
- const fullErrorName = `Sequelize${errorName}`;
- expect(stackParts[0]).to.equal(`${fullErrorName}: this is a message`);
- expect(stackParts[1]).to.match(/^ {4}at throwError \(.*errors.test.js:\d+:\d+\)$/);
- }
- });
- describe('AggregateError', () => {
- it('get .message works', () => {
- expect(
- String(
- new AggregateError([
- new Error('foo'),
- new Error('bar\nbaz'),
- new AggregateError([new Error('this\nis\na\ntest'), new Error('qux')]),
- ]),
- ),
- ).to.equal(
- `AggregateError of:
- Error: foo
- Error: bar
- baz
- AggregateError of:
- Error: this
- is
- a
- test
- Error: qux
- `,
- );
- });
- });
- });
|