@xervo/api-util
Version:
wrapper to make API request simpler
97 lines (82 loc) • 2.47 kB
JavaScript
const Assign = require('lodash.assign');
const Code = require('code');
const Lab = require('lab');
const Nock = require('nock');
const Client = require('..')();
const lab = exports.lab = Lab.script();
const describe = lab.describe;
const it = lab.it;
const expect = Code.expect;
const beforeEach = lab.beforeEach;
const afterEach = lab.afterEach;
const HEADERS = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'API-Version': 'v2'
};
describe('Client.delete', function () {
var scope;
beforeEach(function (done) {
Nock.disableNetConnect();
scope = Nock('https://api.xervo.io', {
reqheaders: Assign({}, HEADERS)
});
done();
});
afterEach(function (done) {
Nock.cleanAll();
Nock.enableNetConnect();
done();
});
describe('when requesting a simple endpoint', function () {
describe('when request status is 202', function () {
beforeEach(function (done) {
// eslint-disable-next-line no-magic-numbers
scope.delete('/test').reply(202);
done();
});
it('yields the response body', function (done) {
Client.delete('/test', function (err, result) {
expect(err).to.not.exist();
expect(result).to.deep.equal({});
done();
});
});
});
describe('when request status is 400', function () {
beforeEach(function (done) {
// eslint-disable-next-line no-magic-numbers
scope.delete('/test').reply(400, { error: true });
done();
});
it('yields the error', function (done) {
Client.delete('/test', function (err) {
expect(err).to.exist();
// eslint-disable-next-line no-magic-numbers
expect(err.status).to.equal(400);
expect(err.response.body).to.deep.equal({ error: true });
done();
});
});
});
});
describe('when passed a token', function () {
beforeEach(function (done) {
scope = Nock('https://api.xervo.io', {
reqheaders: Assign({}, HEADERS, {
'Authorization': 'Token 1234'
})
});
// eslint-disable-next-line no-magic-numbers
scope.delete('/test').reply(202);
done();
});
it('yields the response body', function (done) {
Client.delete('/test', '1234', function (err, result) {
expect(err).to.not.exist();
expect(result).to.deep.equal({});
done();
});
});
});
});