From 7c560b289abc92d827ff6b92e984e3506ef55d43 Mon Sep 17 00:00:00 2001 From: jorgep <jorgep@verdnatura.es> Date: Fri, 28 Feb 2025 09:25:51 +0100 Subject: [PATCH] feat: refs #8581 update query parameters and refactor tests --- .../InvoiceIn/Card/InvoiceInDescriptor.vue | 8 +- .../invoiceIn/invoiceInDescriptor.spec.js | 122 ++++++++++-------- 2 files changed, 73 insertions(+), 57 deletions(-) diff --git a/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue b/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue index 3843f5bf7..39071342d 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInDescriptor.vue @@ -17,10 +17,6 @@ const { t } = useI18n(); const cardDescriptorRef = ref(); const entityId = computed(() => $props.id || +currentRoute.value.params.id); const totalAmount = ref(); -const config = ref(); -const cplusRectificationTypes = ref([]); -const siiTypeInvoiceIns = ref([]); -const invoiceCorrectionTypes = ref([]); const invoiceInCorrection = reactive({ correcting: [], corrected: null }); const routes = reactive({ getSupplier: (id) => { @@ -30,7 +26,7 @@ const routes = reactive({ return { name: 'InvoiceInList', query: { - params: JSON.stringify({ supplierFk: id }), + table: JSON.stringify({ supplierFk: id }), }, }; }, @@ -39,7 +35,7 @@ const routes = reactive({ return { name: 'InvoiceInList', query: { - params: JSON.stringify({ correctedFk: entityId.value }), + table: JSON.stringify({ correctedFk: entityId.value }), }, }; } diff --git a/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js b/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js index 7930ab1a2..c5144d2d6 100644 --- a/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js +++ b/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js @@ -1,13 +1,9 @@ describe('InvoiceInDescriptor', () => { - const checkbox = '[data-cy="vnLvIs booked"] > .q-checkbox'; - describe('more options', () => { - beforeEach(() => { - cy.viewport(1280, 720); - cy.login('administrative'); - }); + beforeEach(() => cy.login('administrative')); - it('should booking and unbooking the invoice properly', () => { + it.skip('should booking and unbooking the invoice properly', () => { + const checkbox = '[data-cy="vnLvIs booked"] > .q-checkbox'; cy.visit('/#/invoice-in/1/summary'); cy.selectDescriptorOption(); cy.dataCy('VnConfirm_confirm').click(); @@ -17,43 +13,29 @@ describe('InvoiceInDescriptor', () => { cy.validateCheckbox(checkbox, false); }); - it('should delete the invoice properly', () => { + it.skip('should delete the invoice properly', () => { cy.visit('/#/invoice-in/2/summary'); cy.selectDescriptorOption(2); cy.clickConfirm(); cy.checkNotification('invoice deleted'); }); - it('should clone the invoice properly', () => { + it.skip('should clone the invoice properly', () => { cy.visit('/#/invoice-in/3/summary'); cy.selectDescriptorOption(3); cy.clickConfirm(); cy.checkNotification('Invoice cloned'); }); - it('should show the agricultural PDF properly', () => { - cy.visit('/#/invoice-in/6/summary', { - onBeforeLoad(win) { - cy.stub(win, 'open').as('win'); - }, - }); - cy.selectDescriptorOption(4); - - cy.get('@win') - .should('be.calledOnce') - .then((stub) => { - const [url] = stub.getCall(0).args; - const regex = /api\/InvoiceIns\/6\/invoice-in-pdf\?access_token=.*/; - expect(url).to.match(regex); - cy.request(url).then((response) => - expect(response.headers['content-type']).to.include( - 'application/pdf', - ), - ); - }); + it.skip('should show the agricultural PDF properly', () => { + cy.visit('/#/invoice-in/6/summary'); + cy.validatePdfDownload( + /api\/InvoiceIns\/6\/invoice-in-pdf\?access_token=.*/, + () => cy.selectDescriptorOption(4), + ); }); - it('should send the agricultural PDF properly', () => { + it.skip('should send the agricultural PDF properly', () => { cy.intercept('POST', 'api/InvoiceIns/6/invoice-in-email').as('sendEmail'); cy.visit('/#/invoice-in/6/summary'); cy.selectDescriptorOption(5); @@ -72,28 +54,66 @@ describe('InvoiceInDescriptor', () => { }); }); - it('should create a correcting invoice', () => { - cy.visit(`/#/invoice-in/1/summary`); - cy.intercept('POST', '/api/InvoiceIns/corrective').as('corrective'); - cy.selectDescriptorOption(4); - cy.dataCy('saveCorrectiveInvoice').click(); - cy.wait('@corrective').then(({ response }) => { - const correctingId = response.body; - cy.url().should('include', `/invoice-in/${correctingId}/summary`); - cy.visit(`/#/invoice-in/${correctingId}/corrective`); - }); - cy.get('tbody > tr:visible').should('have.length', 1); - }); - - it('should download the file properly', () => { + it.skip('should download the file properly', () => { cy.visit('/#/invoice-in/1/summary'); - cy.selectDescriptorOption(5); - const regex = /api\/dms\/1\/downloadFile\?access_token=.*/; - cy.intercept('GET', regex).as('download'); - cy.wait('@download').then(({ response }) => { - expect(response.statusCode).to.equal(200); - expect(response.headers['content-type']).to.include('text/plain'); - }); + cy.validateDownload(() => cy.selectDescriptorOption(5)); }); }); + + describe('buttons', () => { + beforeEach(() => { + cy.login('administrative'); + cy.visit('/#/invoice-in/1/summary'); + }); + + it.skip('should navigate to the supplier summary', () => { + cy.clicDescriptorAction(1); + cy.url().should('to.match', /supplier\/\d+\/summary/); + }); + + it.skip('should navigate to the entry summary', () => { + cy.clicDescriptorAction(2); + cy.url().should('to.match', /entry\/\d+\/summary/); + }); + + it.skip('should navigate to the invoiceIn list', () => { + cy.intercept('GET', /api\/InvoiceIns\/1/).as('getCard'); + cy.clicDescriptorAction(3); + cy.wait('@getCard'); + cy.url().should('to.match', /invoice-in\/list\?table=\{.*supplierFk.+\}/); + }); + }); + + describe('corrective', () => { + beforeEach(() => { + cy.login('administrative'); + cy.visit('/#/invoice-in/1/summary'); + }); + it('should create two correcting invoice', () => { + cy.visit(`/#/invoice-in/1/summary`); + corrective(); + cy.get('tbody > tr:visible').should('have.length', 1); + corrective(); + }); + // it('should navigate to the corrected or correcting invoice page', () => { + // cy.visit('/#/invoice-in/1/summary'); + // cy.clicDescriptorAction(4); + // cy.url().should('include', '/invoice-in'); + // }); + + // it('should navigate to invoice-in list filtered by the corrected invoice', () => { + // cy.visit('') + // }); + }); }); + +function corrective() { + cy.intercept('POST', '/api/InvoiceIns/corrective').as('corrective'); + cy.selectDescriptorOption(4); + cy.dataCy('saveCorrectiveInvoice').click(); + cy.wait('@corrective').then(({ response }) => { + const correctingId = response.body; + cy.url().should('include', `/invoice-in/${correctingId}/summary`); + cy.visit(`/#/invoice-in/${correctingId}/corrective`); + }); +}