cannery-adapter-rest
Version:
The Cannery REST adapter
71 lines (59 loc) • 1.84 kB
JavaScript
;
var assert = require('assert');
var proxyquire = require('proxyquire');
var Car = require('../__mocks__/car_model.mock');
var RestAdapter = proxyquire('../index', {
'then-request': require('../__mocks__/create_request.mock')
});
describe('create()', function () {
it('Should allow us to override the route', function (done) {
var car = new Car(1);
var adapter = new RestAdapter(car, {
Car: {
create: 'foo/bar/baz'
}
});
adapter.create(car).then(function (data) {
assert.equal(data.id, 5000);
done();
});
});
it('Should respond with an object of data', function (done) {
var car = new Car();
var adapter = new RestAdapter();
adapter.create(car).then(function (data) {
assert.equal(data.id, 1);
done();
});
});
it('Should allow us to pass in an envelope for our data', function (done) {
var car = new Car();
var adapter = new RestAdapter({
envelope: 'car'
});
adapter.create(car).then(function (data) {
assert.equal(data.id, 2);
done();
});
});
it('Should catch errors', function (done) {
var car = new Car();
var adapter = new RestAdapter({
throwError: true
});
adapter.create(car).catch(function (data) {
assert.equal(data.statusCode, 500);
done();
});
});
it('Should allow us to specify a urlRoot', function (done) {
var car = new Car();
var adapter = new RestAdapter({
urlRoot: 'api/'
});
adapter.create(car).then(function (data) {
assert.equal(data.id, 3);
done();
});
});
});