182 lines
6.8 KiB
JavaScript
182 lines
6.8 KiB
JavaScript
/// <reference types="cypress" />
|
|
|
|
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);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|