rest-api-starter
Version:
Rest API starter kit.
121 lines (105 loc) • 3.56 kB
JavaScript
/**
* Created by svinci on 1/13/17.
*/
;
const mocha = require('mocha');
const chai = require('chai');
const describe = mocha.describe;
const it = mocha.it;
const before = mocha.before;
const after = mocha.after;
const expect = chai.expect;
const localStore = require('../app/local-store');
const serverBuilder = require('./testServer');
const clientBuilder = require('../app/client');
describe('Client', () => {
let server = null;
let client = null;
before(() => {
server = serverBuilder();
client = clientBuilder('http://localhost:8100', 900);
});
it('should correctly post a document', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
const object = {
'test': 'case'
};
client.post(object, '/client-post-test', {}).then((obj) => {
expect(obj.test).to.equal(object.test);
done();
}).catch((err) => done(err));
});
});
it('should get one document', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
client.get('/client-get-test', {}).then((objs) => {
expect(objs.length).to.equal(1);
expect(objs[0].test).to.equal('case');
done();
}).catch((err) => done(err));
});
});
it('should put one document', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
const object = {
'test': 'case'
};
client.put(object, '/client-put-test', {}).then((obj) => {
expect(obj.test).to.equal(object.test);
done();
}).catch((err) => done(err));
});
});
it('should patch one document', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
const object = {
'test': 'case'
};
client.patch(object, '/client-patch-test', {}).then((obj) => {
expect(obj.test).to.equal(object.test);
done();
}).catch((err) => done(err));
});
});
it('should delete one document', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
client.del('/client-del-test', {}).then(() => {
done();
}).catch((err) => done(err));
});
});
it('should reject on global timeout', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
client.get('/endpoint-that-takes-1s', {}).then(() => {
done('expected failure');
}).catch((err) => {
expect(err.timeout).to.equal(900);
done();
}).catch((err) => {
done(err);
});
});
});
it('should reject on request timeout', (done) => {
localStore.create(function() {
localStore.putValue('tid', 'some-tid');
client.get('/endpoint-that-takes-half-s', {}, 400).then(() => {
done('expected failure');
}).catch((err) => {
expect(err.timeout).to.equal(400);
done();
}).catch((err) => {
done(err);
});
});
});
after(() => {
server.close();
});
});