Skip to content

Commit

Permalink
all error classes refactored
Browse files Browse the repository at this point in the history
  • Loading branch information
vitaly-t committed Aug 27, 2019
1 parent 6f08ff8 commit dc4cafa
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 25 deletions.
50 changes: 26 additions & 24 deletions lib/errors/sequence.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,37 +52,39 @@ const errorReasons = {
* @see {@link sequence}
*
*/
function SequenceError(e, code, cbName, duration) {
class SequenceError extends Error {

// TODO: Replace with ES6 class (like in pg-promise)
constructor(e, code, cbName, duration) {

this.index = e.index;
this.duration = duration;
this.error = e.error;

if (this.error instanceof Error) {
this.message = this.error.message;
} else {
this.message = this.error;
if (typeof this.message !== 'string') {
this.message = npm.u.inspect(this.message);
let message;
if (e.error instanceof Error) {
message = e.error.message;
} else {
message = e.error;
if (typeof message !== 'string') {
message = npm.u.inspect(message);
}
}
}

if ('source' in e) {
this.source = e.source;
} else {
this.dest = e.dest;
}
super(message);
this.name = this.constructor.name;

cbName = cbName ? ('\'' + cbName + '\'') : '<anonymous>';
this.reason = npm.u.format(errorReasons[code], cbName, e.index);
this.index = e.index;
this.duration = duration;
this.error = e.error;

Error.captureStackTrace(this, SequenceError);
}
if ('source' in e) {
this.source = e.source;
} else {
this.dest = e.dest;
}

cbName = cbName ? ('\'' + cbName + '\'') : '<anonymous>';
this.reason = npm.u.format(errorReasons[code], cbName, e.index);

npm.u.inherits(SequenceError, Error);
SequenceError.prototype.name = 'SequenceError';
Error.captureStackTrace(this, this.constructor);
}
}

/**
* @method errors.SequenceError.toString
Expand Down
5 changes: 4 additions & 1 deletion test/ext/page.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ describe('Page - negative', () => {

it('must reject correctly', () => {
expect(isError(r)).toBe(true);
expect(r instanceof Error).toBe(true);
expect(r instanceof PageError).toBe(true);
expect(r.name).toBe('PageError');
expect(r.index).toBe(0);
expect(r.error).toBe(err);
expect('source' in r).toBe(true);
Expand Down Expand Up @@ -245,8 +247,9 @@ describe('Page - negative', () => {

it('must reject correctly', () => {
expect(error.index).toBe(2);
expect(error.error.name).toBe('BatchError');
expect(error.error instanceof Error).toBeTruthy();
expect(error.error instanceof BatchError).toBeTruthy();
expect(error.error.name).toBe('BatchError');
expect(error.error.data).toEqual([
{
success: true,
Expand Down
2 changes: 2 additions & 0 deletions test/ext/sequence.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ describe('Sequence - negative', () => {

it('must reject correctly', () => {
expect(isError(r)).toBe(true);
expect(r.name).toBe('SequenceError');
expect(r instanceof Error).toBe(true);
expect(r instanceof SequenceError).toBe(true);
expect(r.index).toBe(0);
expect(r.error).toBe(err);
Expand Down

0 comments on commit dc4cafa

Please sign in to comment.