Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions packages/javascript-api/src/lib/services/api-base/api-base.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,30 @@ describe('ApiBase', () => {
},
);
});

it('should handle error with complex error in "errors" property', (done) => {
Qminder.setKey(API_KEY);

const response: any = {
ok: false,
statusCode: 409,
errors: { email: 'Email already in use' },
};

fetchSpy.mockReturnValue(new MockResponse(response));

Qminder.ApiBase.request('TEST').then(
() => done(new Error('Should have errored')),
(error: ComplexError) => {
expect(error.error).toEqual({ email: 'Email already in use' });
expect(error.message).toEqual(
'Error occurred! Check error property for more information!',
);
expect(error instanceof ComplexError).toBeTruthy();
done();
},
);
});
});

describe('queryGraph()', () => {
Expand Down
3 changes: 3 additions & 0 deletions packages/javascript-api/src/lib/services/api-base/api-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ export class ApiBase {
if (Object.prototype.hasOwnProperty.call(response, 'error')) {
return new ComplexError(response.error);
}
if (Object.prototype.hasOwnProperty.call(response, 'errors')) {
return new ComplexError(response.errors);
}

return new UnknownError();
}
Expand Down
Loading