@gameroom/gameroom-kit
Version:
Node kit for the Gameroom API
126 lines (124 loc) • 3.4 kB
JavaScript
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);
});
});
});