const app = require('vn-loopback/server/server'); describe('ticket-request confirm()', () => { let ctx = { req: { accessToken: {userId: 9}, headers: {origin: 'http://localhost'} } }; ctx.req.__ = value => { return value; }; it(`should throw an error if the item doesn't exist`, async() => { ctx.args = {itemFk: 999}; let error; try { await app.models.TicketRequest.confirm(ctx); } catch (err) { error = err; } expect(error.message).toEqual(`That item doesn't exists`); }); it('should throw an error if the item is not available', async() => { const requestId = 5; const itemId = 4; const quantity = 99999; ctx.args = { itemFk: itemId, id: requestId, quantity: quantity }; let error; try { await app.models.TicketRequest.confirm(ctx); } catch (err) { error = err; } expect(error.message).toEqual(`This item is not available`); }); it(`should throw if there's a sale id`, async() => { const requestId = 4; const itemId = 1; const quantity = 10; ctx.args = { itemFk: itemId, id: requestId, quantity: quantity }; const request = await app.models.TicketRequest.findById(requestId); expect(request.saleFk).toBeNull(); await request.updateAttributes({saleFk: 2}); ctx.args = { itemFk: itemId, id: requestId, quantity: quantity }; let error; try { await app.models.TicketRequest.confirm(ctx); } catch (err) { error = err; } expect(error.message).toEqual(`This request already contains a sale`); // restores await request.updateAttributes({saleFk: null}); }); });