/// describe('InvoiceInList', () => { const firstRow = 'tbody.q-virtual-scroll__content tr:nth-child(1)'; const firstId = `${firstRow} > td:nth-child(2) span`; const firstDetailBtn = `${firstRow} .q-btn:nth-child(1)`; const summaryHeaders = '.summaryBody .header-link'; const mockInvoiceRef = `createMockInvoice${Math.floor(Math.random() * 100)}`; const mock = { vnSupplierSelect: { val: 'farmer king', type: 'select' }, 'Invoice nÂș_input': mockInvoiceRef, Company_select: { val: 'orn', type: 'select' }, 'Expedition date_inputDate': '16-11-2001', }; beforeEach(() => { cy.viewport(1920, 1080); cy.login('administrative'); cy.visit(`/#/invoice-in/list`); cy.get('#searchbar input').type('{enter}'); }); it('should redirect on clicking a invoice', () => { cy.get(firstId) .invoke('text') .then((content) => { const id = content.replace(/\D/g, ''); cy.get(firstRow).click(); cy.url().should('include', `/invoice-in/${id}/summary`); }); }); it('should open the details', () => { cy.get(firstDetailBtn).click(); cy.get(summaryHeaders).eq(1).contains('Basic data'); cy.get(summaryHeaders).eq(4).contains('Vat'); }); it('should create a new Invoice', () => { cy.dataCy('vnTableCreateBtn').click(); cy.fillInForm(mock, { attr: 'data-cy' }); cy.dataCy('FormModelPopup_save').click(); cy.intercept('GET', /\/api\/InvoiceIns\/\d+\/getTotals$/).as('invoice'); cy.wait('@invoice').then(() => cy.validateDescriptor({ title: mockInvoiceRef, listBox: { 0: '11/16/2001', 3: 'The farmer' }, }), ); cy.get('[data-cy="vnLvCompany"]').should('contain.text', 'ORN'); }); describe('right-panel', () => { it('should filter by From param', () => { cy.dataCy('From_inputDate').type('31/12/2000{enter}'); cy.validateVnTableRows({ cols: [ { name: 'issued', type: 'date', val: '31/12/2000', operation: 'after', }, ], }); }); it('should filter by To param', () => { cy.dataCy('To_inputDate').type('31/12/2000{enter}'); cy.validateVnTableRows({ cols: [ { name: 'issued', type: 'date', val: '31/12/2000', operation: 'before', }, ], }); }); it('should filter by daysAgo param', () => { cy.dataCy('Days ago_input').type('4{enter}'); cy.validateVnTableRows({ cols: [ { name: 'issued', type: 'date', val: '31/12/2000', operation: 'after', }, ], }); cy.dataCy('vnFilterPanelChip_from').should('contain.text', '12/28/2000'); cy.dataCy('vnFilterPanelChip_to').should('contain.text', '01/01/2001'); }); it('should filter by supplierFk param', () => { cy.selectOption('[data-cy="vnSupplierSelect"]', 'farmer king'); cy.dataCy('vnSupplierSelect').type('{enter}'); cy.validateVnTableRows({ cols: [{ name: 'supplierFk', val: 'Farmer King' }], }); }); it('should filter by supplierRef param', () => { cy.intercept('GET', /\/api\/InvoiceIns\/\d+\/getTotals$/).as('invoice'); cy.dataCy('Supplier ref_input').type('1234{enter}'); cy.wait('@invoice').then(() => cy.validateDescriptor({ title: '1234' })); }); it('should filter by FI param', () => { const plantsSlTaxNumber = '06089160W'; cy.dataCy('FI_input').type(`${plantsSlTaxNumber}{enter}`); cy.validateVnTableRows({ cols: [{ name: 'supplierFk', val: 'plants sl' }] }); }); it('should filter by Serial param', () => { cy.dataCy('Serial_input').type('R'); cy.validateVnTableRows({ cols: [{ name: 'serial', val: 'r' }] }); }); it('should filter by account param', () => { const supplierAccount = '4100000001'; cy.dataCy('Ledger account_input').type(`${supplierAccount}{enter}`); cy.validateVnTableRows({ cols: [{ name: 'supplierFk', val: 'plants sl' }] }); }); it('should filter by AWB param', () => { const awb = '22101929561'; cy.dataCy('AWB_input').type(`${awb}{enter}`); cy.intercept('GET', /\/api\/InvoiceIns\/\d+\/getTotals$/).as('invoice'); cy.wait('@invoice').then(() => cy.validateDescriptor({ title: '1239' })); }); it('should filter by amount param', () => { cy.dataCy('Amount_input').type('64.23{enter}'); cy.intercept('GET', /\/api\/InvoiceIns\/\d+\/getTotals$/).as('invoice'); cy.wait('@invoice').then(() => cy.validateDescriptor({ listbox: { 2: '64.23' } }), ); }); it('should filter by company param', () => { cy.selectOption('[data-cy="Company_select"]', '442'); cy.dataCy('Company_select').type('{enter}'); cy.validateVnTableRows({ cols: [{ name: 'companyFk', val: 'vnl' }], }); }); it('should filter by isBooked param', () => { cy.dataCy('vnCheckboxIs booked').click(); cy.validateVnTableRows({ cols: [{ name: 'isBooked', val: 'check' }], }); cy.dataCy('vnCheckboxIs booked').click(); cy.validateVnTableRows({ cols: [{ name: 'isBooked', val: 'close' }], }); }); it('should filter by correctingFk param', () => { cy.dataCy('vnCheckboxRectificative').click(); cy.get('[data-cy="vnTable"] .q-virtual-scroll__content') .children() .its('length') .then((firstCount) => { cy.dataCy('vnCheckboxRectificative').click(); cy.waitTableLoad(); cy.get('[data-cy="vnTable"] .q-virtual-scroll__content') .children() .its('length') .then((secondCount) => { expect(firstCount).to.not.equal(secondCount); }); }); }); }); });