diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 4480759f4..44bd87da9 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -783,6 +783,21 @@ export default { ticketOne: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(1)', ticketTwo: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(2)' }, + travelBasicDada: { + reference: 'vn-travel-basic-data vn-textfield[ng-model="$ctrl.travel.ref"]', + agency: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.agencyModeFk"]', + shippingDate: 'vn-travel-basic-data vn-date-picker[ng-model="$ctrl.travel.shipped"]', + deliveryDate: 'vn-travel-basic-data vn-date-picker[ng-model="$ctrl.travel.landed"]', + outputWarehouse: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]', + inputWarehouse: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]', + delivered: 'vn-travel-basic-data vn-check[ng-model="$ctrl.travel.isDelivered"]', + received: 'vn-travel-basic-data vn-check[ng-model="$ctrl.travel.isReceived"]', + save: 'vn-travel-basic-data vn-submit[label="Save"]', + undoChanges: 'vn-travel-basic-data vn-button[label="Undo changes"]' + }, + travelLog: { + firstLogFirstTD: 'vn-travel-log vn-tbody > vn-tr > vn-td:nth-child(1) > div' + }, travelThermograph: { add: 'vn-travel-thermograph-index vn-float-button[icon="add"]', thermographID: 'vn-travel-thermograph-create vn-autocomplete[ng-model="$ctrl.dms.thermographId"]', diff --git a/e2e/paths/02-client/08_add_notes.spec.js b/e2e/paths/02-client/08_add_notes.spec.js index 8f1a9244d..b759cbd07 100644 --- a/e2e/paths/02-client/08_add_notes.spec.js +++ b/e2e/paths/02-client/08_add_notes.spec.js @@ -16,6 +16,12 @@ describe('Client Add notes path', () => { await browser.close(); }); + it(`should reach the notes index`, async() => { + let url = await page.expectURL('/note'); + + expect(url).toBe(true); + }); + it(`should click on the add note button`, async() => { await page.waitToClick(selectors.clientNotes.addNoteFloatButton); let url = await page.expectURL('/note/create'); diff --git a/e2e/paths/10-travel/02_basic_data_and_log.spec.js b/e2e/paths/10-travel/02_basic_data_and_log.spec.js new file mode 100644 index 000000000..20e0c0ac5 --- /dev/null +++ b/e2e/paths/10-travel/02_basic_data_and_log.spec.js @@ -0,0 +1,101 @@ +import selectors from '../../helpers/selectors.js'; +import getBrowser from '../../helpers/puppeteer'; + +describe('Travel basic data path', () => { + let browser; + let page; + + beforeAll(async() => { + browser = await getBrowser(); + page = browser.page; + await page.loginAndModule('buyer', 'travel'); + await page.accessToSearchResult('3'); + await page.accessToSection('travel.card.basicData'); + }); + + afterAll(async() => { + await browser.close(); + }); + + it('should reach the thermograph section', async() => { + const result = await page.expectURL('/basic-data'); + + expect(result).toBe(true); + }); + + it('should set a wrong delivery date then receive an error on submit', async() => { + await page.datePicker(selectors.travelBasicDada.deliveryDate, -1, null); + await page.waitToClick(selectors.travelBasicDada.save); + const result = await page.waitForLastSnackbar(); + + expect(result).toEqual('Landing cannot be lesser than shipment'); + }); + + it('should undo the changes', async() => { + await page.waitToClick(selectors.travelBasicDada.undoChanges); + await page.waitToClick(selectors.travelBasicDada.save); + const result = await page.waitForLastSnackbar(); + + expect(result).toEqual('No changes to save'); + }); + + it('should now edit the whole form then save', async() => { + await page.clearInput(selectors.travelBasicDada.reference); + await page.write(selectors.travelBasicDada.reference, 'new reference!'); + await page.autocompleteSearch(selectors.travelBasicDada.agency, 'Entanglement'); + await page.autocompleteSearch(selectors.travelBasicDada.outputWarehouse, 'Warehouse Three'); + await page.autocompleteSearch(selectors.travelBasicDada.inputWarehouse, 'Warehouse Four'); + await page.waitToClick(selectors.travelBasicDada.delivered); + await page.waitToClick(selectors.travelBasicDada.received); + await page.waitToClick(selectors.travelBasicDada.save); + const result = await page.waitForLastSnackbar(); + + expect(result).toEqual('Data saved!'); + }); + + it('should reload the section and check the reference was saved', async() => { + await page.reloadSection('travel.card.basicData'); + const result = await page.waitToGetProperty(selectors.travelBasicDada.reference, 'value'); + + expect(result).toEqual('new reference!'); + }); + + it('should check the agency was saved', async() => { + const result = await page.waitToGetProperty(selectors.travelBasicDada.agency, 'value'); + + expect(result).toEqual('Entanglement'); + }); + + it('should check the output warehouse date was saved', async() => { + const result = await page.waitToGetProperty(selectors.travelBasicDada.outputWarehouse, 'value'); + + expect(result).toEqual('Warehouse Three'); + }); + + it('should check the input warehouse date was saved', async() => { + const result = await page.waitToGetProperty(selectors.travelBasicDada.inputWarehouse, 'value'); + + expect(result).toEqual('Warehouse Four'); + }); + + it(`should check the delivered checkbox was saved even tho it doesn't make sense`, async() => { + await page.waitForClassPresent(selectors.travelBasicDada.delivered, 'checked'); + }); + + it(`should check the received checkbox was saved even tho it doesn't make sense`, async() => { + await page.waitForClassPresent(selectors.travelBasicDada.received, 'checked'); + }); + + it('should navigate to the travel logs', async() => { + await page.accessToSection('travel.card.log'); + const result = await page.expectURL('/log'); + + expect(result).toBe(true); + }); + + it('should check the 1st log contains details from the changes made', async() => { + const result = await page.waitToGetProperty(selectors.travelLog.firstLogFirstTD, 'innerText'); + + expect(result).toContain('new reference!'); + }); +});