@megawubs/avid
Version:
API consumption on fire, inspired by Laravel's Eloquent
68 lines (55 loc) • 1.81 kB
JavaScript
import {expect, assert} from 'chai';
import {Avid} from "../../source/avid";
import {User} from "./models/user";
beforeEach(function () {
Avid.baseUrl = 'http://localhost:3000';
});
describe('Model ', () => {
it('should load all items from modelProxy with Model.all() ', () => {
return User.all();
});
it('should get one item with Model.find(1) ', () => {
return User.find(1);
});
it('should create a new model when model is newed up ', () => {
let user = new User;
user.name = 'Jan';
user.email = 'jan@jan.com';
user.password = 'secret';
return user.save().then(user => {
expect(user.id).to.be.a('number')
});
});
it('should edit a model when model exists ', () => {
return User.find(1).then(user => {
user.name = 'Willem';
return user.save();
}).then(user => {
assert.equal(user.id, 1);
assert.equal(user.name, 'Willem');
});
});
it('should use a different url for models when it is set ', () => {
Avid.baseUrl = 'http://blaat.foo';
assert.equal(User.baseUrl, 'http://blaat.foo');
return User.find(1).catch(error => {
});
});
it('should restore model when a update goes wrong ', () => {
return User.find(1).then(user => {
let oldName = user.name;
Avid.baseUrl = 'http://blaat.foo';
user.name = 'fooo2';
user.save().then(() => {
assert.equal(user.name, oldName);
});
});
});
it('should delete a model', () => {
let user = new User();
user.name = 'Bee';
return user.save().then(user => {
return user.delete();
});
});
});