import selectors from '../../helpers/selectors.js';
import getBrowser from '../../helpers/puppeteer';

describe('Ticket expeditions and log path', () => {
    let browser;
    let page;

    beforeAll(async() => {
        browser = await getBrowser();
        page = browser.page;
        await page.loginAndModule('production', 'ticket');
        await page.accessToSearchResult('1');
        await page.accessToSection('ticket.card.expedition');
    });

    afterAll(async() => {
        await browser.close();
    });

    it(`should delete a former expedition and confirm the remaining expedition are the expected ones`, async() => {
        await page.waitToClick(selectors.ticketExpedition.secondExpeditionRemoveButton);
        await page.waitToClick(selectors.globalItems.acceptButton);
        await page.reloadSection('ticket.card.expedition');

        await page.waitForSelector(selectors.ticketExpedition.expeditionRow, {});
        const result = await page
            .countElement(selectors.ticketExpedition.expeditionRow);

        expect(result).toEqual(3);
    });

    it(`should confirm the expedition deleted is shown now in the ticket log`, async() => {
        await page.accessToSection('ticket.card.log');
        const changedBy = await page
            .waitToGetProperty(selectors.ticketLog.changedBy, 'innerText');

        const actionTaken = await page
            .waitToGetProperty(selectors.ticketLog.actionTaken, 'innerText');

        const id = await page
            .waitToGetProperty(selectors.ticketLog.id, 'innerText');

        expect(changedBy).toEqual('production');
        expect(actionTaken).toEqual('Deletes');
        expect(id).toEqual('2');
    });
});