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

describe('Order summary path', () => {
    let browser;
    let page;
    beforeAll(async() => {
        browser = await getBrowser();
        page = browser.page;
        await page.loginAndModule('employee', 'order');
        await page.accessToSearchResult('16');
    });

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

    it('should reach the order summary section', async() => {
        await page.waitForState('order.card.summary');
    });

    it('should check the summary contains the order id', async() => {
        const result = await page.waitToGetProperty(selectors.orderSummary.id, 'innerText');

        expect(result).toEqual('16');
    });

    it('should check the summary contains the order alias', async() => {
        const result = await page.waitToGetProperty(selectors.orderSummary.alias, 'innerText');

        expect(result).toEqual('address 26');
    });

    it('should check the summary contains the order consignee', async() => {
        const result = await page.waitToGetProperty(selectors.orderSummary.consignee, 'innerText');

        expect(result).toEqual('Many places - Silla (Province one)');
    });

    it('should check the summary contains the order subtotal', async() => {
        const result = await page.waitToGetProperty(selectors.orderSummary.subtotal, 'innerText');

        expect(result.length).toBeGreaterThan(1);
    });

    it('should check the summary contains the order vat', async() => {
        const result = await page.waitToGetProperty(selectors.orderSummary.vat, 'innerText');

        expect(result.length).toBeGreaterThan(1);
    });

    it('should check the summary contains the order total', async() => {
        const result = await page.waitToGetProperty(selectors.orderSummary.total, 'innerText');

        expect(result.length).toBeGreaterThan(1);
    });

    it('should check the summary contains the order sales', async() => {
        const result = await page.countElement(selectors.orderSummary.sale);

        expect(result).toBeGreaterThan(0);
    });
});