availity-ekko
Version:
Mock server simulating Availity API rest services
120 lines (96 loc) • 3.54 kB
JavaScript
/* globals describe, it*/
var request = require('superagent');
var chai = require('chai');
var _ = require('lodash');
var helper = require('../../tests/helpers');
var expect = chai.expect;
describe('Routes', function() {
helper.serverSpecHelper();
it('route 1 should be defined with GET, PUT, POST and DELETE', function() {
// since no verbs were defined the the mock server
// will configure all verbs for this route
var verbs = ['get', 'put', 'post', 'delete'];
var getConfiguredVerbs = function(ekko, expectedVerbs, path) {
var routeConfigs = ekko.config().router.stack;
var _verbs = _.chain(routeConfigs)
.map(function(routeConfig) {
if (routeConfig.route.path === path) {
return _.keys(routeConfig.route.methods)[0];
}
})
.filter(function(method) {
return method !== undefined;
})
.value();
return _verbs;
};
var _verbs = getConfiguredVerbs(helper.ekko, verbs, '/v1/route1.:format?');
var count = _.intersection(verbs, _verbs).length;
expect(count).to.equal(4);
});
it('route 1 should respond with dummy-response1.json', function(done) {
request.get(helper.getUrl('/v1/route1'))
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(200);
expect(_.isEqual(res.body, {'a': 1})).to.be.ok;
done();
});
});
it('route 2 should respond with dummy-response2.json for GET', function(done) {
request.get(helper.getUrl('/internal/v2/route2'))
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(200);
expect(_.isEqual(res.body, {'b': 2})).to.be.ok;
done();
});
});
it('route 2 should respond with dummy-response3.json for POST', function(done) {
request.post(helper.getUrl('/internal/v2/route2'))
.send({bar: 'baz'})
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(200);
expect(_.isEqual(res.body, {'c': 3})).to.be.ok;
done();
});
});
it('route 4 should respond with dummy-response-2.json for POST with parameters', function(done) {
request.post(helper.getUrl('/v1/route4'))
.send({a: { b: 'b'}})
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(200);
expect(_.isEqual(res.body, {'b': 2})).to.be.ok;
done();
});
});
it('route 4 should response with dummy-response1.json [default file] for POST with no parameters', function(done) {
request.post(helper.getUrl('/v1/route4'))
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(200);
expect(_.isEqual(res.body, {'a': 1})).to.be.ok;
done();
});
});
it('route 9 should response with dummy-response1.json and status 201 for GET', function(done) {
request.get(helper.getUrl('/v1/route9'))
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(201);
expect(_.isEqual(res.body, {'a': 1})).to.be.ok;
done();
});
});
it('route 9 should response with dummy-response2.json and status 422 for POST', function(done) {
request.post(helper.getUrl('/v1/route9'))
.end(function(err, res) {
expect(err).to.be.null;
expect(res.status).to.equal(203);
expect(_.isEqual(res.body, {'b': 2})).to.be.ok;
done();
});
});
});