UNPKG

@gameroom/gameroom-kit

Version:

Node kit for the Gameroom API

144 lines (142 loc) 3.77 kB
let chai = require('chai'), should = chai.should(), faker = require('faker'), { models } = require('../../'), { Line_Tax, Line, Price, Product, Sale, Tax } = models, object, line, price_id, product_id, sale_id, tax; describe('Line', () => { describe('setup', () => { it('should create objects for relationships', async() => { let result, error; // product try { result = await Product.create({ name: faker.random.word() }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); product_id = result.id; // price try { result = await Price.create({ name: faker.random.word(), product_id }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); price_id = result.id; // sale try { result = await Sale.create({ product_id }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); sale_id = result.id; }); }); describe('Line.create()', () => { it('should create a line', async () => { let result, error; try { result = await Line.create({ name: faker.random.word(), price_id, sale_id }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); object = result; }); }); describe('Line.get()', () => { it('should get array of lines', async () => { let result, error; try { result = await Line.get(); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('array'); }); }); describe('Line.find()', () => { it('should find a line', async() => { let result, error; try { result = await Line.find(object, { view: 'full' }); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); object = result; }); }); describe('Line keys', () => { it('should match api and kit keys', async () => { Object.keys(object).should.deep.equal(Object.keys(Line.schema.attributes)); }); }); describe('Line.update()', () => { it('should update a line', async () => { let result, error; object.name = faker.random.word(); try { result = await Line.update(object); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); }); }); describe('line.save()', () => { it('should update one line', async () => { let result, error; object.name = faker.random.word(); try { result = await object.save(); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); result.should.be.a('object'); }); }); describe('Line.delete()', () => { it('should delete one line', async () => { let result, error; try { result = await Line.delete(object); } catch(err) { error = err; }; should.not.exist(error); should.exist(result); }); }); describe('teardown', () => { it('should delete the relationship objects', async() => { let error; try { await Sale.delete(sale_id); await Price.delete(price_id); await Product.delete(product_id); } catch(err) { error = err; }; should.not.exist(error); }); }); });