const app = require(`../../../../server/server`);

describe('order removes()', () => {
    let row;
    let newRow;

    beforeAll(async() => {
        row = await app.models.OrderRow.findOne({where: {id: 12}});
        row.id = null;
        newRow = await app.models.OrderRow.create(row);
    });

    it('should throw an error if rows property is empty', async() => {
        let error;
        try {
            await app.models.OrderRow.removes({rows: []});
        } catch (e) {
            error = e;
        }

        expect(error).toEqual(new Error('There is nothing to delete'));
    });

    it('should throw an error if the row selected is not editable', async() => {
        let error;
        try {
            await app.models.OrderRow.removes({rows: [2]});
        } catch (e) {
            error = e;
        }

        expect(error).toEqual(new Error('This order is not editable'));
    });

    it('should delete the row', async() => {
        let params = {
            rows: [newRow.id],
            actualOrderId: 16
        };

        let res = await app.models.OrderRow.removes(params);

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