From 52cb6c076c5b55cfe06fb9499f72a8db54c65ba5 Mon Sep 17 00:00:00 2001 From: carlosjr Date: Wed, 30 Dec 2020 14:54:51 +0100 Subject: [PATCH] travel cloneWithEntries path + e2e fix --- e2e/helpers/selectors.js | 7 ++- e2e/paths/10-travel/03_descriptor.spec.js | 43 +++++++++++++++++++ .../10-travel/04_extra_community.spec.js | 1 + 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 2260e0bd81..066d432c8a 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -831,7 +831,8 @@ export default { firstSearchResult: 'vn-travel-index vn-tbody > a:nth-child(1)' }, travelExtraCommunity: { - firstTravelReference: 'vn-travel-extra-community > vn-data-viewer div > vn-tbody > vn-tr > vn-td-editable', + anySearchResult: 'vn-travel-extra-community > vn-data-viewer div > vn-tbody > vn-tr', + firstTravelReference: 'vn-travel-extra-community vn-card:nth-child(1) vn-td-editable', removeContinentFilter: 'vn-searchbar > form > vn-textfield > div.container > div.prepend > prepend > div > span:nth-child(3) > vn-icon > i' }, travelBasicData: { @@ -863,7 +864,9 @@ export default { travelDescriptor: { filterByAgencyButton: 'vn-descriptor-content .quicklinks > div:nth-child(1) > vn-quick-link > a[vn-tooltip="All travels with current agency"]', dotMenu: 'vn-travel-descriptor vn-icon-button[icon="more_vert"]', - dotMenuClone: '#clone' + dotMenuClone: '#clone', + dotMenuCloneWithEntries: '#cloneWithEntries', + acceptClonation: 'tpl-buttons > button[response="accept"]' }, travelCreate: { reference: 'vn-travel-create vn-textfield[ng-model="$ctrl.travel.ref"]', diff --git a/e2e/paths/10-travel/03_descriptor.spec.js b/e2e/paths/10-travel/03_descriptor.spec.js index 3f79bea061..bf6c3a02ef 100644 --- a/e2e/paths/10-travel/03_descriptor.spec.js +++ b/e2e/paths/10-travel/03_descriptor.spec.js @@ -42,4 +42,47 @@ describe('Travel descriptor path', () => { expect(state).toBe('travel.create'); }); + + it('should edit the data to clone and then get redirected to the cloned travel basic data', async() => { + await page.clearInput(selectors.travelCreate.reference); + await page.write(selectors.travelCreate.reference, 'reference'); + await page.autocompleteSearch(selectors.travelCreate.agency, 'entanglement'); + await page.pickDate(selectors.travelCreate.shipped); + await page.pickDate(selectors.travelCreate.landed); + await page.autocompleteSearch(selectors.travelCreate.warehouseOut, 'warehouse one'); + await page.autocompleteSearch(selectors.travelCreate.warehouseIn, 'warehouse two'); + await page.waitToClick(selectors.travelCreate.saveButton); + await page.waitForState('travel.card.basicData'); + const message = await page.waitForSnackbar(); + + expect(message.text).toContain('Data saved!'); + }); + + it('should atempt to clone the travel and its entries using the descriptor menu but receive an error', async() => { + await page.waitToClick(selectors.travelDescriptor.dotMenu); + await page.waitToClick(selectors.travelDescriptor.dotMenuCloneWithEntries); + await page.waitToClick(selectors.travelDescriptor.acceptClonation); + const message = await page.waitForSnackbar(); + + expect(message.text).toContain('A travel with this data already exists'); + }); + + it('should update the landed date to a future date to enable cloneWithEntries', async() => { + const nextMonth = new Date(); + nextMonth.setMonth(nextMonth.getMonth() + 1); + await page.pickDate(selectors.travelBasicData.deliveryDate, nextMonth); + await page.waitToClick(selectors.travelBasicData.save); + await page.waitForState('travel.card.basicData'); + const message = await page.waitForSnackbar(); + + expect(message.text).toContain('Data saved!'); + }); + + it('should navigate to the summary and then clone the travel and its entries using the descriptor menu to get redirected to the cloned travel basic data', async() => { + await page.waitToClick('vn-icon[icon="preview"]'); // summary icon + await page.waitToClick(selectors.travelDescriptor.dotMenu); + await page.waitToClick(selectors.travelDescriptor.dotMenuCloneWithEntries); + await page.waitToClick(selectors.travelDescriptor.acceptClonation); + await page.waitForState('travel.card.basicData'); + }); }); diff --git a/e2e/paths/10-travel/04_extra_community.spec.js b/e2e/paths/10-travel/04_extra_community.spec.js index bc81c086c8..7a37b89e41 100644 --- a/e2e/paths/10-travel/04_extra_community.spec.js +++ b/e2e/paths/10-travel/04_extra_community.spec.js @@ -18,6 +18,7 @@ describe('Travel extra community path', () => { it('should edit the travel reference', async() => { await page.waitToClick(selectors.travelExtraCommunity.removeContinentFilter); + await page.waitForSpinnerLoad(); await page.writeOnEditableTD(selectors.travelExtraCommunity.firstTravelReference, 'edited reference'); });