const app = require('vn-loopback/server/server'); describe('loopback model Item', () => { describe('availableId()', () => { let nextItemId; beforeEach(async() => { let query = `SELECT i1.id + 1 as id FROM vn.item i1 LEFT JOIN vn.item i2 ON i1.id + 1 = i2.id WHERE i2.id IS NULL ORDER BY i1.id LIMIT 1`; [nextAvailableId] = await app.models.Item.rawSql(query); nextItemId = nextAvailableId.id; }); it('should return the next available id for an item', async() => { let context = {isNewInstance: true, instance: {}}; let result = await app.models.Item.availableId(context); expect(result).toEqual(nextItemId); }); }); });