/// <reference types="cypress" />
describe('InvoiceInVat', () => {
    const thirdRow = 'tbody > :nth-child(3)';
    const firstLineVat = 'tbody > :nth-child(1) > :nth-child(4)';
    const vats = '[data-cy="vat-sageiva"]';
    const dialogInputs = '.q-dialog label input';
    const addBtn = 'tbody tr:nth-child(1) td:nth-child(2) .--add-icon';
    const randomInt = Math.floor(Math.random() * 100);

    beforeEach(() => {
        cy.login('developer');
        cy.visit(`/#/invoice-in/1/vat`);
        cy.intercept('GET', '/api/InvoiceIns/1/getTotals').as('lastCall');
        cy.wait('@lastCall');
    });

    it('should edit the sage iva', () => {
        cy.selectOption(`${firstLineVat} ${vats}`, 'H.P. IVA 21% CEE');
        cy.saveCard();
        cy.get(vats).eq(0).should('have.value', '8: H.P. IVA 21% CEE');
    });

    it('should add a new row', () => {
        cy.addRow();
        cy.fillRow(thirdRow, [true, 2000000001, 30, 'H.P. IVA 10']);
        cy.saveCard();
        cy.get('.q-notification__message').should('have.text', 'Data saved');
    });

    it('should remove the first line', () => {
        cy.removeRow(1);
    });

    it('should correctly handle expense addition', () => {
        cy.get(addBtn).click();
        cy.get(dialogInputs).eq(0).type(randomInt);
        cy.get(dialogInputs).eq(1).type('This is a dummy expense');

        cy.get('button[type="submit"]').click();
        cy.get('.q-notification__message').should('have.text', 'Data created');
    });
});