Skip to content

Commit

Permalink
chore(maintain): improve test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
siffogh committed Mar 20, 2018
1 parent 08315ef commit e72a280
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
5 changes: 2 additions & 3 deletions __mocks__/got.js
@@ -1,6 +1,5 @@
const handleRequest = (url, { error }) => {
const path = url.split('/').reverse()[0];
switch (path) {
const handleRequest = (url, { errorType, error }) => {
switch (errorType) {
case 'FAIL_WITHOUT_RESPONSE':
case 'FAIL_WITH_RESPONSE':
return Promise.reject(error);
Expand Down
26 changes: 26 additions & 0 deletions test/TaskService.test.js
Expand Up @@ -14,6 +14,20 @@ describe('TaskService', () => {
taskService = new TaskService(new events(), engineService);
});

it('error(event, data) should emit error event with data: ', () => {
// given
const emitSpy = jest.spyOn(taskService.events, 'emit');
const event = 'some_event';
const expectedEvent = `${event}:error`;
const expectedData = 'some data';

// when
taskService.error(event, expectedData);

// then
expect(emitSpy).toBeCalledWith(expectedEvent, expectedData);
});

describe('sanitizeTask', () => {
test('should return task with id when task id is provided', () => {
expect(taskService.sanitizeTask('2')).toEqual({ id: '2' });
Expand Down Expand Up @@ -41,6 +55,18 @@ describe('TaskService', () => {
expect(e).toEqual(new Error(MISSING_TASK));
}
});

test('should call api complete with provided task', () => {
//given
const completeSpy = jest.spyOn(engineService, 'complete');
const expectedTaskId = 'foo';

//when
taskService.complete(expectedTaskId);

//then
expect(completeSpy).toBeCalledWith({ id: expectedTaskId });
});
});

describe('handleFailure', () => {
Expand Down
22 changes: 15 additions & 7 deletions test/__internal/EngineService.test.js
Expand Up @@ -179,32 +179,40 @@ describe('EngineService', () => {

it('should throw error if request fails without response', async() => {
// given
const url = '/FAIL_WITHOUT_RESPONSE';
const errorType = 'FAIL_WITHOUT_RESPONSE';
const error = 'some error message';

// then
let thrownError;

try {
await engineService.request('GET', url, { error });
await engineService.request('GET', '', { errorType, error });
} catch (e) {
expect(e).toEqual(error);
thrownError = e;
}

expect(thrownError).toBe(error);
});

it('should throw error response if request fails with response', async() => {
// given
const url = '/FAIL_WITHOUT_RESPONSE';
const errorType = 'FAIL_WITHOUT_RESPONSE';
const error = {
response: {
body: { messsage: 'Some error message' }
body: { message: 'Some error message' }
}
};

// then
let thrownError;

try {
await engineService.request('GET', url, { error });
await engineService.request('GET', '', { errorType, error });
} catch (e) {
expect(e).toEqual(error.response.body.message);
thrownError = e;
}

expect(thrownError).toBe(error.response.body.message);
});
});
});

0 comments on commit e72a280

Please sign in to comment.