cannery-adapter-rest
Version:
The Cannery REST adapter
69 lines (57 loc) • 1.83 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__/fetch_request.mock')
});
describe('fetch()', function () {
it('Should allow us to define a custom url path', function (done) {
var car = new Car(1);
var adapter = new RestAdapter(car, {
Car: {
fetch: 'foo/bar/baz'
}
});
adapter.fetch(car).then(function (data) {
assert.equal(data.make, 'Foo');
done();
});
});
it('Should respond with an object of data', function (done) {
var car = new Car(1);
var adapter = new RestAdapter();
adapter.fetch(car, {}).then(function (data) {
assert.equal(data.make, 'Ford');
done();
});
});
it('Should allow us to pass in an envelope for our data', function (done) {
var car = new Car(2);
var adapter = new RestAdapter({
envelope: 'car'
});
adapter.fetch(car).then(function (data) {
assert.equal(data.make, 'Honda');
done();
});
});
it('Should catch errors', function (done) {
var car = new Car(2000);
var adapter = new RestAdapter();
adapter.fetch(car).catch(function (data) {
assert.equal(data.statusCode, 404);
done();
});
});
it('Should allow us to specify a urlRoot', function (done) {
var car = new Car(1);
var adapter = new RestAdapter({
urlRoot: 'api/'
});
adapter.fetch(car).then(function (data) {
assert.equal(data.make, 'Jeep');
done();
});
});
});