From 6f2d8d0a937afccbccde25701dfcdbc1a5a00bc4 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 17 Feb 2025 13:53:28 +0100 Subject: [PATCH 1/5] feat: refs #8599 modified tests to be more complete and added new ones --- .../invoiceOut/invoiceOutList.spec.js | 46 +++++++---- .../invoiceOutNegativeBases.spec.js | 19 +++++ .../invoiceOut/invoiceOutSummary.spec.js | 76 ++++++++++++++----- 3 files changed, 109 insertions(+), 32 deletions(-) diff --git a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js index 82f0fa3b63..df85e130ea 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js @@ -1,6 +1,14 @@ /// describe('InvoiceOut list', () => { const serial = 'Española rapida'; + const columnCheckbox = + '.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner'; + const firstRowDescriptor = + 'tbody > :nth-child(1) > [data-col-field="clientFk"] > .no-padding > .link'; + const firstRowCheckbox = + 'tbody > :nth-child(1) > :nth-child(1) > .q-checkbox > .q-checkbox__inner '; + const summaryPopupIcon = '.header > :nth-child(2) > .q-btn__content > .q-icon'; + const filterBtn = '.q-scrollarea__content > .q-btn--standard > .q-btn__content'; beforeEach(() => { cy.viewport(1920, 1080); @@ -9,18 +17,27 @@ describe('InvoiceOut list', () => { cy.typeSearchbar('{enter}'); }); - it('should search and filter an invoice and enter to the summary', () => { - cy.typeSearchbar('1{enter}'); - cy.get('.q-virtual-scroll__content > :nth-child(2) > :nth-child(7)').click(); - cy.get('.header > a.q-btn > .q-btn__content').click(); - cy.typeSearchbar('{enter}'); - cy.dataCy('InvoiceOutFilterAmountBtn').find('input').type('8.88{enter}'); + it('should download one pdf', () => { + cy.get(firstRowCheckbox).click(); + cy.dataCy('InvoiceOutDownloadPdfBtn').click(); }); - it('should download all pdfs', () => { - cy.get('.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner').click(); + it('should download all pdfs, then open the descriptor', () => { + cy.get(columnCheckbox).click(); cy.dataCy('InvoiceOutDownloadPdfBtn').click(); - cy.get('.bg-header > :nth-child(1) > .q-checkbox > .q-checkbox__inner').click(); + }); + + it('should open the client descriptor', () => { + cy.get(firstRowDescriptor).click(); + cy.get(summaryPopupIcon).click(); + }); + + it('should create a manual invoice and enter to its summary', () => { + cy.dataCy('vnTableCreateBtn').click(); + cy.dataCy('InvoiceOutCreateTicketinput').type(8); + cy.selectOption('[data-cy="InvoiceOutCreateSerialSelect"]', serial); + cy.dataCy('FormModelPopup_save').click(); + cy.checkNotification('Data created'); }); it('should give an error when manual invoicing a ticket that is already invoiced', () => { @@ -31,11 +48,10 @@ describe('InvoiceOut list', () => { cy.checkNotification('This ticket is already invoiced'); }); - it('should create a manual invoice and enter to its summary', () => { - cy.dataCy('vnTableCreateBtn').click(); - cy.dataCy('InvoiceOutCreateTicketinput').type(8); - cy.selectOption('[data-cy="InvoiceOutCreateSerialSelect"]', serial); - cy.dataCy('FormModelPopup_save').click(); - cy.checkNotification('Data created'); + it('should filter the results by client ID, then check the first result is correct', () => { + cy.dataCy('Customer ID_input').type('1103'); + cy.get(filterBtn).click(); + cy.get(firstRowDescriptor).click(); + cy.get('.q-item > .q-item__label').should('include.text', '1103'); }); }); diff --git a/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js b/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js index 02b7fbb43c..dc8235c1af 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js @@ -1,11 +1,30 @@ /// describe('InvoiceOut negative bases', () => { + const clientDescriptor = + ':nth-child(1) > [data-col-field="clientId"] > .no-padding > .link'; + const ticketDescriptor = + ':nth-child(1) > [data-col-field="ticketFk"] > .no-padding > .link'; + const workerDescriptor = + ':nth-child(1) > [data-col-field="workerName"] > .no-padding > .link'; + beforeEach(() => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/invoice-out/negative-bases`); }); + it('should open the posible descriptors', () => { + cy.get(clientDescriptor).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('.q-item > .q-item__label').should('include.text', '1101'); + cy.get(ticketDescriptor).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('.q-item > .q-item__label').should('include.text', '23'); + cy.get(workerDescriptor).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('.q-item > .q-item__label').should('include.text', '18'); + }); + it('should filter and download as CSV', () => { cy.get('input[name="ticketFk"]').type('23{enter}'); cy.get('#subToolbar > .q-btn').click(); diff --git a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js index 44b0a99618..d774a49352 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js @@ -5,25 +5,54 @@ describe('InvoiceOut summary', () => { Type: { val: 'Error in customer data', type: 'select' }, }; + const firstTicketRowDescriptor = 'tbody > :nth-child(1) > :nth-child(1) > .q-btn'; + const firstClientRowDescriptor = + 'tbody > :nth-child(1) > :nth-child(2) > .q-btn > .q-btn__content'; + const toCustomerSummary = '[href="#/customer/1101"]'; + const toTicketList = '[href="#/ticket/list?table={%22refFk%22:%22T1111111%22}"]'; + beforeEach(() => { cy.viewport(1920, 1080); cy.login('developer'); - cy.visit(`/#/invoice-out/list`); + cy.visit(`/#/invoice-out/1/summary`); }); - it('should generate the invoice PDF', () => { - cy.typeSearchbar('T1111111{enter}'); - cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(6)').click(); - cy.dataCy('VnConfirm_confirm').click(); - cy.checkNotification('The invoice PDF document has been regenerated'); + it('open the descriptors', () => { + cy.get(firstTicketRowDescriptor).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('.q-item > .q-item__label').should('include.text', '1'); + cy.get(firstClientRowDescriptor).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('.q-item > .q-item__label').should('include.text', '1101'); }); - it('should refund the invoice ', () => { + + it('should open the client summary and the ticket list', () => { + cy.get(toCustomerSummary).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('.q-item > .q-item__label').should('include.text', '1101'); + }); + + it('should open the ticket list', () => { + cy.get(toTicketList).click(); + cy.get('.descriptor').should('be.visible'); + cy.get('[data-cy="vnFilterPanelChip"]').should('include.text', 'T1111111'); + }); + + it('should transfer the invoice ', () => { cy.typeSearchbar('T1111111{enter}'); cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(7)').click(); - cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(2)').click(); - cy.checkNotification('The following refund ticket have been created'); + cy.get('.q-menu > .q-list > :nth-child(1)').click(); + cy.fillInForm(transferInvoice); + cy.get('.q-mt-lg > .q-btn').click(); + cy.checkNotification('Transferred invoice'); + }); + + it('should send the invoice', () => { + cy.dataCy('descriptor-more-opts').click(); + cy.get('.q-menu > .q-list > :nth-child(3)').click(); + cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(1)').click(); + cy.get('.q-btn--unelevated').click(); + cy.checkNotification('Notification sent'); }); it('should delete an invoice ', () => { @@ -33,12 +62,25 @@ describe('InvoiceOut summary', () => { cy.dataCy('VnConfirm_confirm').click(); cy.checkNotification('InvoiceOut deleted'); }); - it('should transfer the invoice ', () => { - cy.typeSearchbar('T1111111{enter}'); + + it('shpuld book the invoice', () => { cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(1)').click(); - cy.fillInForm(transferInvoice); - cy.get('.q-mt-lg > .q-btn').click(); - cy.checkNotification('Transferred invoice'); + cy.get('.q-menu > .q-list > :nth-child(5)').click(); + cy.dataCy('VnConfirm_confirm').click(); + cy.checkNotification('InvoiceOut booked'); + }); + + it('should generate the invoice PDF', () => { + cy.dataCy('descriptor-more-opts').click(); + cy.get('.q-menu > .q-list > :nth-child(6)').click(); + cy.dataCy('VnConfirm_confirm').click(); + cy.checkNotification('The invoice PDF document has been regenerated'); + }); + + it('should refund the invoice ', () => { + cy.dataCy('descriptor-more-opts').click(); + cy.get('.q-menu > .q-list > :nth-child(7)').click(); + cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(2)').click(); + cy.checkNotification('The following refund ticket have been created'); }); }); From 0e9f50f6c3b4cff435ce8491d9ec311832ff4b18 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 18 Feb 2025 14:14:18 +0100 Subject: [PATCH 2/5] refactor: refs #8599 invoice out list e2e --- .../invoiceOut/invoiceOutList.spec.js | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js index df85e130ea..24bc4ccf8e 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js @@ -22,7 +22,7 @@ describe('InvoiceOut list', () => { cy.dataCy('InvoiceOutDownloadPdfBtn').click(); }); - it('should download all pdfs, then open the descriptor', () => { + it('should download all pdfs', () => { cy.get(columnCheckbox).click(); cy.dataCy('InvoiceOutDownloadPdfBtn').click(); }); @@ -32,12 +32,11 @@ describe('InvoiceOut list', () => { cy.get(summaryPopupIcon).click(); }); - it('should create a manual invoice and enter to its summary', () => { - cy.dataCy('vnTableCreateBtn').click(); - cy.dataCy('InvoiceOutCreateTicketinput').type(8); - cy.selectOption('[data-cy="InvoiceOutCreateSerialSelect"]', serial); - cy.dataCy('FormModelPopup_save').click(); - cy.checkNotification('Data created'); + it('should filter the results by client ID, then check the first result is correct', () => { + cy.dataCy('Customer ID_input').type('1103'); + cy.get(filterBtn).click(); + cy.get(firstRowDescriptor).click(); + cy.get('.q-item > .q-item__label').should('include.text', '1103'); }); it('should give an error when manual invoicing a ticket that is already invoiced', () => { @@ -48,10 +47,14 @@ describe('InvoiceOut list', () => { cy.checkNotification('This ticket is already invoiced'); }); - it('should filter the results by client ID, then check the first result is correct', () => { - cy.dataCy('Customer ID_input').type('1103'); - cy.get(filterBtn).click(); - cy.get(firstRowDescriptor).click(); - cy.get('.q-item > .q-item__label').should('include.text', '1103'); + it('should create a manual invoice and enter to its summary, then delete that invoice', () => { + cy.dataCy('vnTableCreateBtn').click(); + cy.dataCy('InvoiceOutCreateTicketinput').type(9); + cy.selectOption('[data-cy="InvoiceOutCreateSerialSelect"]', serial); + cy.dataCy('FormModelPopup_save').click(); + cy.checkNotification('Data created'); + cy.dataCy('descriptor-more-opts').click(); + cy.get('.q-menu > .q-list > :nth-child(4)').click(); + cy.dataCy('VnConfirm_confirm').click(); }); }); From 78552a49fad939e2f686650c3ea760d41c4a6783 Mon Sep 17 00:00:00 2001 From: Jon Date: Thu, 20 Feb 2025 08:09:06 +0100 Subject: [PATCH 3/5] feat: refs #8599 added new test and translations --- src/pages/InvoiceOut/locale/en.yml | 1 + src/pages/InvoiceOut/locale/es.yml | 1 + .../integration/invoiceOut/invoiceOutList.spec.js | 10 +++++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pages/InvoiceOut/locale/en.yml b/src/pages/InvoiceOut/locale/en.yml index 9dd31d186a..f1baef432c 100644 --- a/src/pages/InvoiceOut/locale/en.yml +++ b/src/pages/InvoiceOut/locale/en.yml @@ -24,6 +24,7 @@ invoiceOut: min: Min max: Max hasPdf: Has PDF + search: Contains card: issued: Issued customerCard: Customer card diff --git a/src/pages/InvoiceOut/locale/es.yml b/src/pages/InvoiceOut/locale/es.yml index 79ceb4aa81..afca278716 100644 --- a/src/pages/InvoiceOut/locale/es.yml +++ b/src/pages/InvoiceOut/locale/es.yml @@ -24,6 +24,7 @@ invoiceOut: min: Min max: Max hasPdf: Tiene PDF + search: Contiene card: issued: Fecha emisión customerCard: Ficha del cliente diff --git a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js index 24bc4ccf8e..d3a84d226b 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutList.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutList.spec.js @@ -9,6 +9,8 @@ describe('InvoiceOut list', () => { 'tbody > :nth-child(1) > :nth-child(1) > .q-checkbox > .q-checkbox__inner '; const summaryPopupIcon = '.header > :nth-child(2) > .q-btn__content > .q-icon'; const filterBtn = '.q-scrollarea__content > .q-btn--standard > .q-btn__content'; + const firstSummaryIcon = + ':nth-child(1) > .text-right > [data-cy="tableAction-0"] > .q-btn__content > .q-icon'; beforeEach(() => { cy.viewport(1920, 1080); @@ -17,7 +19,7 @@ describe('InvoiceOut list', () => { cy.typeSearchbar('{enter}'); }); - it('should download one pdf', () => { + it('should download one pdf from the subtoolbar button', () => { cy.get(firstRowCheckbox).click(); cy.dataCy('InvoiceOutDownloadPdfBtn').click(); }); @@ -27,6 +29,12 @@ describe('InvoiceOut list', () => { cy.dataCy('InvoiceOutDownloadPdfBtn').click(); }); + it('should open the invoice descriptor from table icon', () => { + cy.get(firstSummaryIcon).click(); + cy.get('.cardSummary').should('be.visible'); + cy.get('.summaryHeader > div').should('include.text', 'A1111111'); + }); + it('should open the client descriptor', () => { cy.get(firstRowDescriptor).click(); cy.get(summaryPopupIcon).click(); From d2b1cd406709e8f9fa4faa1703499c59c09e0bf6 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 21 Feb 2025 08:20:35 +0100 Subject: [PATCH 4/5] refactor: refs #8599 requested changes --- .../Card/InvoiceOutDescriptorMenu.vue | 8 +++- .../invoiceOutNegativeBases.spec.js | 14 +++---- .../invoiceOut/invoiceOutSummary.spec.js | 39 ++++++++++++------- 3 files changed, 35 insertions(+), 26 deletions(-) diff --git a/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue b/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue index 1fd9f3e922..8be9281342 100644 --- a/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue +++ b/src/pages/InvoiceOut/Card/InvoiceOutDescriptorMenu.vue @@ -163,10 +163,14 @@ const showExportationLetter = () => { - {{ t('Send PDF') }} + + {{ t('Send PDF') }} + - {{ t('Send CSV') }} + + {{ t('Send CSV') }} + diff --git a/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js b/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js index dc8235c1af..4d530de05f 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutNegativeBases.spec.js @@ -1,11 +1,7 @@ /// describe('InvoiceOut negative bases', () => { - const clientDescriptor = - ':nth-child(1) > [data-col-field="clientId"] > .no-padding > .link'; - const ticketDescriptor = - ':nth-child(1) > [data-col-field="ticketFk"] > .no-padding > .link'; - const workerDescriptor = - ':nth-child(1) > [data-col-field="workerName"] > .no-padding > .link'; + const getDescriptors = (opt) => + `:nth-child(1) > [data-col-field="${opt}"] > .no-padding > .link`; beforeEach(() => { cy.viewport(1920, 1080); @@ -14,13 +10,13 @@ describe('InvoiceOut negative bases', () => { }); it('should open the posible descriptors', () => { - cy.get(clientDescriptor).click(); + cy.get(getDescriptors('clientId')).click(); cy.get('.descriptor').should('be.visible'); cy.get('.q-item > .q-item__label').should('include.text', '1101'); - cy.get(ticketDescriptor).click(); + cy.get(getDescriptors('ticketFk')).click(); cy.get('.descriptor').should('be.visible'); cy.get('.q-item > .q-item__label').should('include.text', '23'); - cy.get(workerDescriptor).click(); + cy.get(getDescriptors('workerName')).click(); cy.get('.descriptor').should('be.visible'); cy.get('.q-item > .q-item__label').should('include.text', '18'); }); diff --git a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js index d774a49352..0e945be6e8 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js @@ -5,11 +5,12 @@ describe('InvoiceOut summary', () => { Type: { val: 'Error in customer data', type: 'select' }, }; - const firstTicketRowDescriptor = 'tbody > :nth-child(1) > :nth-child(1) > .q-btn'; - const firstClientRowDescriptor = - 'tbody > :nth-child(1) > :nth-child(2) > .q-btn > .q-btn__content'; + const firstRowDescriptors = (opt) => + `tbody > :nth-child(1) > :nth-child(${opt}) > .q-btn`; const toCustomerSummary = '[href="#/customer/1101"]'; const toTicketList = '[href="#/ticket/list?table={%22refFk%22:%22T1111111%22}"]'; + const selectMenuOption = (opt) => `.q-menu > .q-list > :nth-child(${opt})`; + const confirmSend = '.q-btn--unelevated'; beforeEach(() => { cy.viewport(1920, 1080); @@ -18,10 +19,10 @@ describe('InvoiceOut summary', () => { }); it('open the descriptors', () => { - cy.get(firstTicketRowDescriptor).click(); + cy.get(firstRowDescriptors(1)).click(); cy.get('.descriptor').should('be.visible'); cy.get('.q-item > .q-item__label').should('include.text', '1'); - cy.get(firstClientRowDescriptor).click(); + cy.get(firstRowDescriptors(2)).click(); cy.get('.descriptor').should('be.visible'); cy.get('.q-item > .q-item__label').should('include.text', '1101'); }); @@ -35,51 +36,59 @@ describe('InvoiceOut summary', () => { it('should open the ticket list', () => { cy.get(toTicketList).click(); cy.get('.descriptor').should('be.visible'); - cy.get('[data-cy="vnFilterPanelChip"]').should('include.text', 'T1111111'); + cy.dataCy('vnFilterPanelChip').should('include.text', 'T1111111'); }); it('should transfer the invoice ', () => { cy.typeSearchbar('T1111111{enter}'); cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(1)').click(); + cy.get(selectMenuOption(1)).click(); cy.fillInForm(transferInvoice); cy.get('.q-mt-lg > .q-btn').click(); cy.checkNotification('Transferred invoice'); }); - it('should send the invoice', () => { + it('should send the invoice as PDF', () => { cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(3)').click(); - cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(1)').click(); - cy.get('.q-btn--unelevated').click(); + cy.get(selectMenuOption(3)).click(); + cy.dataCy('InvoiceOutDescriptorMenuSendPdfOption').click(); + cy.get(confirmSend).click(); + cy.checkNotification('Notification sent'); + }); + + it('should send the invoice as CSV', () => { + cy.dataCy('descriptor-more-opts').click(); + cy.get(selectMenuOption(3)).click(); + cy.dataCy('InvoiceOutDescriptorMenuSendCsvOption').click(); + cy.get(confirmSend).click(); cy.checkNotification('Notification sent'); }); it('should delete an invoice ', () => { cy.typeSearchbar('T2222222{enter}'); cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(4)').click(); + cy.get(selectMenuOption(4)).click(); cy.dataCy('VnConfirm_confirm').click(); cy.checkNotification('InvoiceOut deleted'); }); it('shpuld book the invoice', () => { cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(5)').click(); + cy.get(selectMenuOption(5)).click(); cy.dataCy('VnConfirm_confirm').click(); cy.checkNotification('InvoiceOut booked'); }); it('should generate the invoice PDF', () => { cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(6)').click(); + cy.get(selectMenuOption(6)).click(); cy.dataCy('VnConfirm_confirm').click(); cy.checkNotification('The invoice PDF document has been regenerated'); }); it('should refund the invoice ', () => { cy.dataCy('descriptor-more-opts').click(); - cy.get('.q-menu > .q-list > :nth-child(7)').click(); + cy.get(selectMenuOption(7)).click(); cy.get('#q-portal--menu--3 > .q-menu > .q-list > :nth-child(2)').click(); cy.checkNotification('The following refund ticket have been created'); }); From c744d3f6aa4c8a6e5d87a68aa2b85861279c2d6a Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 21 Feb 2025 11:30:30 +0100 Subject: [PATCH 5/5] refactor: refs #8599 corrected it name --- test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js index 0e945be6e8..333f7e2c48 100644 --- a/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js +++ b/test/cypress/integration/invoiceOut/invoiceOutSummary.spec.js @@ -72,7 +72,7 @@ describe('InvoiceOut summary', () => { cy.checkNotification('InvoiceOut deleted'); }); - it('shpuld book the invoice', () => { + it('should book the invoice', () => { cy.dataCy('descriptor-more-opts').click(); cy.get(selectMenuOption(5)).click(); cy.dataCy('VnConfirm_confirm').click();