const app = require('vn-loopback/server/server');

describe('sale deleteSales()', () => {
    let sale;
    let newSale;

    beforeAll(async done => {
        try {
            sale = await app.models.Sale.findOne({where: {id: 9}});
            sale.id = null;
            newSale = await app.models.Sale.create(sale);
        } catch (error) {
            console.error(error);
        }

        done();
    });

    it('should throw an error if the ticket of the given sales is not editable', async() => {
        let ctx = {req: {accessToken: {userId: 9}}};
        let error;

        const sales = [{id: 1, instance: 0}, {id: 2, instance: 1}];
        const ticketId = 2;

        try {
            await app.models.Sale.deleteSales(ctx, sales, ticketId);
        } catch (e) {
            error = e;
        }

        expect(error).toEqual(new Error(`The sales of this ticket can't be modified`));
    });

    it('should delete the sale', async() => {
        let ctx = {req: {accessToken: {userId: 9}}};

        const sales = [{id: newSale.id, instance: 0}];
        const ticketId = 16;

        let res = await app.models.Sale.deleteSales(ctx, sales, ticketId);

        expect(res).toEqual([{count: 1}]);
    });
});