From 8b3a9db78143f19136a619b8043d4744c4a90fab Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 3 Dec 2024 13:00:16 +0100 Subject: [PATCH 01/21] feat: refs #8220 created items e2e --- src/components/RegularizeStockForm.vue | 1 + src/components/common/VnSelectDialog.vue | 1 + src/pages/Item/Card/ItemBotanical.vue | 2 +- src/pages/Item/Card/ItemTags.vue | 2 +- src/pages/Item/ItemListFilter.vue | 2 + src/pages/Item/ItemTypeList.vue | 4 +- .../integration/item/itemBotanical.spec.js | 35 ++++++++++++++++ .../integration/item/itemSummary.spec.js | 25 ++++++++++++ test/cypress/integration/item/itemTag.spec.js | 37 +++++++++++++++++ test/cypress/integration/item/itemTax.spec.js | 18 +++++++++ .../cypress/integration/item/itemType.spec.js | 40 +++++++++++++++++++ 11 files changed, 162 insertions(+), 5 deletions(-) create mode 100644 test/cypress/integration/item/itemBotanical.spec.js create mode 100644 test/cypress/integration/item/itemSummary.spec.js create mode 100644 test/cypress/integration/item/itemTag.spec.js create mode 100644 test/cypress/integration/item/itemTax.spec.js create mode 100644 test/cypress/integration/item/itemType.spec.js diff --git a/src/components/RegularizeStockForm.vue b/src/components/RegularizeStockForm.vue index f34386fc4..3cd18d1c8 100644 --- a/src/components/RegularizeStockForm.vue +++ b/src/components/RegularizeStockForm.vue @@ -55,6 +55,7 @@ const onDataSaved = (data) => { v-model.number="data.quantity" type="number" autofocus + data-cy="regularizeStockInput" /> diff --git a/src/components/common/VnSelectDialog.vue b/src/components/common/VnSelectDialog.vue index 350aa9272..a19c3e30c 100644 --- a/src/components/common/VnSelectDialog.vue +++ b/src/components/common/VnSelectDialog.vue @@ -50,6 +50,7 @@ const isAllowedToCreate = computed(() => { :style="{ 'font-variation-settings': `'FILL' ${1}`, }" + :data-cy="`SelectDialogAddIcon-${$attrs.label || 'default'}`" > {{ tooltip }} diff --git a/src/pages/Item/Card/ItemBotanical.vue b/src/pages/Item/Card/ItemBotanical.vue index c4b561772..57774f75e 100644 --- a/src/pages/Item/Card/ItemBotanical.vue +++ b/src/pages/Item/Card/ItemBotanical.vue @@ -1,5 +1,5 @@ + diff --git a/test/cypress/integration/item/itemList.spec.js b/test/cypress/integration/item/itemList.spec.js new file mode 100644 index 000000000..0a1f803aa --- /dev/null +++ b/test/cypress/integration/item/itemList.spec.js @@ -0,0 +1,34 @@ +/// + +describe('Item list', () => { + beforeEach(() => { + cy.viewport(1920, 1080); + cy.login('developer'); + cy.visit(`/#/item/list`); + cy.get('#searchbar input').type('{enter}'); + }); + + it('should filter the items and redirect to the summary', () => { + cy.dataCy('ItemFilterCategorySelect').type('Plant'); + cy.get('.q-menu .q-item').contains('Plant').click(); + cy.dataCy('ItemFilterTypeSelect').type('Anthurium'); + cy.get('.q-menu .q-item').contains('Anthurium').click(); + cy.get('.q-virtual-scroll__content > :nth-child(4) > :nth-child(4)').click(); + }); + + it('should create an item', () => { + const data = { + Description: { val: `Test item` }, + Type: { val: `Crisantemo`, type: 'select' }, + Intrastat: { val: `Coral y materiales similares`, type: 'select' }, + Origin: { val: `SPA`, type: 'select' }, + }; + cy.dataCy('vnTableCreateBtn').click(); + cy.fillInForm(data); + cy.dataCy('FormModelPopup_save').click(); + cy.checkNotification('Data created'); + cy.get( + ':nth-child(2) > .q-drawer > .q-drawer__content > .q-scrollarea > .q-scrollarea__container > .q-scrollarea__content' + ).should('be.visible'); + }); +}); From a2b3a493fd930b5e55c1ca3acafb22e698a72d9e Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 16 Dec 2024 10:24:31 +0100 Subject: [PATCH 06/21] perf: refs #8220 use searchbar selector in e2e tests --- test/cypress/integration/item/itemBarcodes.spec.js | 2 +- test/cypress/integration/item/itemBotanical.spec.js | 2 +- test/cypress/integration/item/itemList.spec.js | 2 +- test/cypress/integration/item/itemSummary.spec.js | 2 +- test/cypress/integration/item/itemTag.spec.js | 3 +-- test/cypress/integration/item/itemTax.spec.js | 2 +- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/test/cypress/integration/item/itemBarcodes.spec.js b/test/cypress/integration/item/itemBarcodes.spec.js index d9add4d4c..a3fadfa16 100644 --- a/test/cypress/integration/item/itemBarcodes.spec.js +++ b/test/cypress/integration/item/itemBarcodes.spec.js @@ -4,7 +4,7 @@ describe('Item shelving', () => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/item/list`); - cy.get('#searchbar input').type('1{enter}'); + cy.typeSearchbar('1{enter}'); }); it('should throw an error if the barcode exists', () => { diff --git a/test/cypress/integration/item/itemBotanical.spec.js b/test/cypress/integration/item/itemBotanical.spec.js index e726fb8c3..a98040f88 100644 --- a/test/cypress/integration/item/itemBotanical.spec.js +++ b/test/cypress/integration/item/itemBotanical.spec.js @@ -4,7 +4,7 @@ describe('Item botanical', () => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/item/list`); - cy.get('#searchbar input').type('1{enter}'); + cy.typeSearchbar('1{enter}'); }); it('should modify the botanical', () => { diff --git a/test/cypress/integration/item/itemList.spec.js b/test/cypress/integration/item/itemList.spec.js index 0a1f803aa..4706093e6 100644 --- a/test/cypress/integration/item/itemList.spec.js +++ b/test/cypress/integration/item/itemList.spec.js @@ -5,7 +5,7 @@ describe('Item list', () => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/item/list`); - cy.get('#searchbar input').type('{enter}'); + cy.typeSearchbar('{enter}'); }); it('should filter the items and redirect to the summary', () => { diff --git a/test/cypress/integration/item/itemSummary.spec.js b/test/cypress/integration/item/itemSummary.spec.js index 24b689686..0da9b1643 100644 --- a/test/cypress/integration/item/itemSummary.spec.js +++ b/test/cypress/integration/item/itemSummary.spec.js @@ -4,7 +4,7 @@ describe('Item summary', () => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/item/list`); - cy.get('#searchbar input').type('1{enter}'); + cy.typeSearchbar('1{enter}'); }); it('should clone the item', () => { diff --git a/test/cypress/integration/item/itemTag.spec.js b/test/cypress/integration/item/itemTag.spec.js index 07cd21aef..a3bd152d8 100644 --- a/test/cypress/integration/item/itemTag.spec.js +++ b/test/cypress/integration/item/itemTag.spec.js @@ -4,10 +4,9 @@ describe('Item tag', () => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/item/list`); - cy.get('#searchbar input').type('1{enter}'); + cy.typeSearchbar('1{enter}'); }); - // falla la notificacion it('should throw an error adding an existent tag', () => { cy.get('[href="#/item/1/tags"]').click(); cy.get('.q-page-sticky > div').click(); diff --git a/test/cypress/integration/item/itemTax.spec.js b/test/cypress/integration/item/itemTax.spec.js index 1de0183d7..9bb79f40f 100644 --- a/test/cypress/integration/item/itemTax.spec.js +++ b/test/cypress/integration/item/itemTax.spec.js @@ -4,7 +4,7 @@ describe('Item tax', () => { cy.viewport(1920, 1080); cy.login('developer'); cy.visit(`/#/item/list`); - cy.get('#searchbar input').type('1{enter}'); + cy.typeSearchbar('1{enter}'); }); it('should modify the tax for Spain', () => { From fc5578cb18c90a0f8a96e44ab850bf17f014133e Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 27 Dec 2024 08:41:54 +0100 Subject: [PATCH 07/21] perf: refs #8220 on-fetch --- src/pages/Item/ItemList.vue | 100 ++---------------------------------- 1 file changed, 5 insertions(+), 95 deletions(-) diff --git a/src/pages/Item/ItemList.vue b/src/pages/Item/ItemList.vue index 3469bae9a..414d9b3bf 100644 --- a/src/pages/Item/ItemList.vue +++ b/src/pages/Item/ItemList.vue @@ -26,10 +26,6 @@ const { t } = useI18n(); const tableRef = ref(); const route = useRoute(); const validPriorities = ref([]); -const itemConfigs = (data) => { - const dataRow = data[0]; - validPriorities.value = dataRow.validPriorities; -}; const itemFilter = { include: [ { @@ -308,7 +304,11 @@ const columns = computed(() => [ ]); -