Skip to content

Commit

Permalink
Merge pull request #18 from JohnDoePBabu/dev
Browse files Browse the repository at this point in the history
Better Error Handling closed #12
  • Loading branch information
warengonzaga committed Jan 9, 2021
2 parents b8f2386 + 1e5a014 commit 0fa118d
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 22 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules
*.log
.jshintrc
.vscode/launch.json
21 changes: 12 additions & 9 deletions source/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,28 @@ class BMC {
this.access_token = access_token;
}

Supporters(callback) {
this._sendRequest('supporters', callback);
Supporters() {
return this._sendRequest('supporters');
}

Subscriptions(callback) {
this._sendRequest('subscriptions', callback);
Subscriptions() {
return this._sendRequest('subscriptions');
}

Extras(callback) {
this._sendRequest('extras', callback);
Extras() {
return this._sendRequest('extras');
}

async _sendRequest(path, callback) {
async _sendRequest(path) {
const response = await requester.get(path, {
headers: {
Authorization: 'Bearer ' + this.access_token,
}
},
validateStatus: function (status) {
return status >= 200 && status < 300; // default
}
});
callback(response.data);
return response.data;
}
}

Expand Down
55 changes: 42 additions & 13 deletions test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,38 +15,67 @@ const BMC = require('../src/index');
beforeEach(() => moxios.install(requester));
afterEach(() => moxios.uninstall(requester));

test('Supporters retreival', done => {
test('Supporters retreival', async () => {
moxios.stubRequest('supporters', {
status: 200,
response: supportersTemplate
})
const BMCInstance = new BMC(token);
BMCInstance.Supporters((supportersData) => {
const supportersData = await BMCInstance.Supporters();
expect(supportersData).toStrictEqual(supportersTemplate);
done();
});
});
test('Supporters retreival failure', async () => {
moxios.stubRequest('supporters', {
status: 400,
response: supportersTemplate
})
const BMCInstance = new BMC(token);
await expect(BMCInstance.Supporters()).rejects.toThrow();
});
test('Supporters retreival: no data', async () => {
const BMCResponse = { error: 'No supporters' };
moxios.stubRequest('supporters', {
status: 200,
response: BMCResponse
})
const BMCInstance = new BMC(token);
const supportersData = await BMCInstance.Supporters();
expect(supportersData).toStrictEqual(BMCResponse);
});

test('Subscription retrieval', done => {
test('Subscription retrieval', async () => {
moxios.stubRequest('subscriptions', {
status: 200,
response: subscriptionsTemplate
})
const BMCInstance = new BMC(token);
BMCInstance.Subscriptions((subscriptions) => {
const subscriptions = await BMCInstance.Subscriptions();
expect(subscriptions).toStrictEqual(subscriptionsTemplate);
done();
});
});

test('Extras retrieval', done => {
test('Subscription retreival failure', async () => {
moxios.stubRequest('subscriptions', {
status: 400,
response: subscriptionsTemplate
})
const BMCInstance = new BMC(token);
await expect(BMCInstance.Subscriptions()).rejects.toThrow();
});
test('Subscription retreival: no data', async () => {
const BMCResponse = { error: 'No subscriptions' };
moxios.stubRequest('subscriptions', {
status: 200,
response: BMCResponse
})
const BMCInstance = new BMC(token);
const subscriptions = await BMCInstance.Subscriptions();
expect(subscriptions).toStrictEqual(BMCResponse);
});
test('Extras retrieval', async () => {
moxios.stubRequest('extras', {
status: 200,
response: extrasTemplate
})
const BMCInstance = new BMC(token);
BMCInstance.Extras((extras) => {
const extras = await BMCInstance.Extras();
expect(extras).toStrictEqual(extrasTemplate);
done();
});
});

0 comments on commit 0fa118d

Please sign in to comment.