UNPKG

@gameroom/gameroom-kit

Version:

Node kit for the Gameroom API

126 lines (124 loc) 3.4 kB
let chai = require('chai'), should = chai.should(), faker = require('faker'), { models } = require('../../'), { Timecard, User } = models, object, user_id; describe('Timecard', () => { describe('setup', () => { it('should create objects for relationships', async() => { let result, error; try { result = await User.create({ email: faker.internet.email(), password: faker.random.word() }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); user_id = result.id; }); }); describe('Timecard.create()', () => { it('should create an timecard', async () => { let result, error; try { result = await Timecard.create({ user_id }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); object = result; }); }); describe('Timecard.get()', () => { it('should get array of timecards', async () => { let result, error; try { result = await Timecard.get(); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('array'); }); }); describe('Timecard.find()', () => { it('should find a timecard', async() => { let result, error; try { result = await Timecard.find(object, { view: 'full' }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); object = result; }); }); describe('Timecard keys', () => { it('should match api and kit keys', async () => { Object.keys(object).should.deep.equal(Object.keys(Timecard.schema.attributes)); }); }); // Broken // describe('Timecard.update()', () => { // it('should update a timecard', async () => { // let result, error; // const update = Object.assign(new Timecard(), object); // delete update.ended_at; // delete update.started_at; // try { // result = await Timecard.update(update); // } catch(err) { // error = err; // }; // should.not.exist(error); // should.exist(result); // result.should.be.a('object'); // }); // }); describe('timecard.save()', () => { it('should update one timecard', async () => { let result, error; const update = Object.assign(new Timecard(), object); delete update.ended_at; delete update.started_at; try { result = await update.save(); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); }); }); describe('Timecard.delete()', () => { it('should delete one timecard', async () => { let result, error; try { result = await Timecard.delete(object); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); }); }); describe('teardown', () => { it('should delete the relationship objects', async() => { let result, error; try { result = await User.delete(user_id); } catch(err) { error = err; }; should.not.exist(error); }); }); });