From 0a0e3d6c1eab5bdf32d86fcf4f4ee684467f8270 Mon Sep 17 00:00:00 2001 From: Carlos Jimenez <=> Date: Sun, 28 Oct 2018 12:37:37 +0100 Subject: [PATCH] #763 e2e en item index (summary) --- e2e/helpers/selectors.js | 2 +- e2e/paths/item-module/01_item_summary.spec.js | 297 ++++++++++-------- 2 files changed, 172 insertions(+), 127 deletions(-) diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 39f64c919..09a5e3313 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -168,7 +168,7 @@ export default { searchResultPreviewButton: `vn-item-product .buttons > [icon="desktop_windows"]`, searchResultCloneButton: `vn-item-product .buttons > [icon="icon-clone"]`, acceptClonationAlertButton: `vn-item-index [vn-id="clone"] [response="ACCEPT"]`, - searchItemInput: `${components.vnTextfield}`, + searchItemInput: `vn-searchbar vn-textfield input`, searchButton: `vn-searchbar vn-icon[icon="search"]`, closeItemSummaryPreview: 'vn-item-index [vn-id="preview"] button.close', }, diff --git a/e2e/paths/item-module/01_item_summary.spec.js b/e2e/paths/item-module/01_item_summary.spec.js index b1fdcd802..9032546cb 100644 --- a/e2e/paths/item-module/01_item_summary.spec.js +++ b/e2e/paths/item-module/01_item_summary.spec.js @@ -5,165 +5,210 @@ describe('Item', () => { describe('Summary path', () => { const nightmare = createNightmare(); - beforeAll(done => { + beforeAll(() => { nightmare - .waitForLogin('employee'); - done(); + .waitForLogin('employee'); }); - it('should access to the items index by clicking the items button', done => { - nightmare - .click(selectors.moduleAccessView.itemsSectionButton) - .wait(selectors.itemsIndex.createItemButton) - .parsedUrl() - .then(url => { - expect(url.hash).toEqual('#!/item/index'); - done(); - }).catch(done.fail); + it('should access to the items index by clicking the items button', async () => { + const url = await nightmare + .click(selectors.moduleAccessView.itemsSectionButton) + .wait(selectors.itemsIndex.createItemButton) + .parsedUrl(); + + expect(url.hash).toEqual('#!/item/index'); }); - it('should search for the item Gem of Time', done => { - nightmare - .wait(selectors.itemsIndex.searchResult) - .type(selectors.itemsIndex.searchItemInput, 'Gem of Time') - .click(selectors.itemsIndex.searchButton) - .waitForNumberOfElements(selectors.itemsIndex.searchResult, 1) - .countElement(selectors.itemsIndex.searchResult) - .then(result => { - expect(result).toEqual(1); - done(); - }).catch(done.fail); + it('should search for the item Gem of Time', async () => { + const result = await nightmare + .wait(selectors.itemsIndex.searchResult) + .type(selectors.itemsIndex.searchItemInput, 'Gem of Time') + .click(selectors.itemsIndex.searchButton) + .waitForNumberOfElements(selectors.itemsIndex.searchResult, 1) + .countElement(selectors.itemsIndex.searchResult); + + expect(result).toEqual(1); }); - it(`should click on the search result summary button to open the item summary popup`, done => { - nightmare - .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Time') - .isVisible(selectors.itemSummary.basicData) - .then(result => { - expect(result).toBeFalsy(); - return nightmare - .waitToClick(selectors.itemsIndex.searchResultPreviewButton) - .isVisible(selectors.itemSummary.basicData); - }) - .then(result => { - expect(result).toBeTruthy(); - done(); - }).catch(done.fail); + it(`should click on the search result summary button to open the item summary popup`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Time') + .isVisible(selectors.itemSummary.basicData) + .then((result) => { + expect(result).toBeFalsy(); + return nightmare + .waitToClick(selectors.itemsIndex.searchResultPreviewButton) + .isVisible(selectors.itemSummary.basicData); + }); + + expect(result).toBeTruthy(); }); - it(`should check the item summary preview shows fields from basic data`, done => { - nightmare - .waitForTextInElement(selectors.itemSummary.basicData, 'Name: Gem of Time') - .getInnerText(selectors.itemSummary.basicData) - .then(result => { - expect(result).toContain('Name: Gem of Time'); - done(); - }).catch(done.fail); + it(`should check the item summary preview shows fields from basic data`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.basicData, 'Name: Gem of Time') + .getInnerText(selectors.itemSummary.basicData); + + expect(result).toContain('Name: Gem of Time'); }); - it(`should check the item summary preview shows fields from tags`, done => { - nightmare - .waitForTextInElement(selectors.itemSummary.tags, 'Color: Yellow') - .getInnerText(selectors.itemSummary.tags) - .then(result => { - expect(result).toContain('Color: Yellow'); - done(); - }).catch(done.fail); + it(`should check the item summary preview shows fields from tags`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.tags, 'Color: Yellow') + .getInnerText(selectors.itemSummary.tags); + + expect(result).toContain('Color: Yellow'); }); - it(`should check the item summary preview shows fields from niche`, done => { - return nightmare - .waitForTextInElement(selectors.itemSummary.niche, 'Warehouse One: A1') - .getInnerText(selectors.itemSummary.niche) - .then(result => { - expect(result).toContain('Warehouse One: A1'); - done(); - }).catch(done.fail); + it(`should check the item summary preview shows fields from niche`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.niche, 'Warehouse One: A1') + .getInnerText(selectors.itemSummary.niche); + + expect(result).toContain('Warehouse One: A1'); }); - it(`should check the item summary preview shows fields from botanical`, async() => { - let result = await nightmare - .waitForTextInElement(selectors.itemSummary.botanical, 'Botanical: Hedera helix') - .getInnerText(selectors.itemSummary.botanical); + it(`should check the item summary preview shows fields from botanical`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.botanical, 'Botanical: Hedera helix') + .getInnerText(selectors.itemSummary.botanical); expect(result).toContain('Botanical: Hedera helix'); }); - it(`should check the item summary preview shows fields from barcode`, done => { - nightmare - .waitForTextInElement(selectors.itemSummary.barcode, '1') - .getInnerText(selectors.itemSummary.barcode) - .then(result => { - expect(result).toContain('1'); - done(); - }).catch(done.fail); + it(`should check the item summary preview shows fields from barcode`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.barcode, '1') + .getInnerText(selectors.itemSummary.barcode); + + expect(result).toContain('1'); }); - it(`should close the summary popup`, done => { - nightmare - .waitToClick(selectors.itemsIndex.closeItemSummaryPreview) - .isVisible(selectors.itemSummary.basicData) - .then(result => { - expect(result).toBeFalsy(); - done(); - }).catch(done.fail); + it(`should close the summary popup`, async () => { + const result = await nightmare + .waitToClick(selectors.itemsIndex.closeItemSummaryPreview) + .isVisible(selectors.itemSummary.basicData); + + expect(result).toBeFalsy(); }); - it(`should navigate to the one of the items detailed section`, done => { - nightmare - .waitToClick(selectors.itemsIndex.searchResult) - .waitForURL('summary') - .parsedUrl() - .then(url => { - expect(url.hash).toContain('summary'); - done(); - }).catch(done.fail); + it('should search for the item Gem of Mind', async () => { + const result = await nightmare + .clearInput('body > vn-app > vn-vertical > vn-vertical > ui-view > vn-item-index > div > div > vn-card:nth-child(1) > div > vn-searchbar > form > vn-horizontal > vn-textfield > div > div > div.infix > input') + .click(selectors.itemsIndex.searchButton) + .type(selectors.itemsIndex.searchItemInput, 'Gem of Mind') + .click(selectors.itemsIndex.searchButton) + .waitForNumberOfElements(selectors.itemsIndex.searchResult, 1) + .countElement(selectors.itemsIndex.searchResult); + + expect(result).toEqual(1); }); - it(`should check the item summary shows fields from basic data section`, done => { - nightmare - .waitForTextInElement(selectors.itemSummary.basicData, 'Name: Gem of Time') - .getInnerText(selectors.itemSummary.basicData) - .then(result => { - expect(result).toContain('Name: Gem of Time'); - done(); - }).catch(done.fail); + it(`should now click on the search result summary button to open the item summary popup`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Mind') + .isVisible(selectors.itemSummary.basicData) + .then((result) => { + expect(result).toBeFalsy(); + return nightmare + .waitToClick(selectors.itemsIndex.searchResultPreviewButton) + .isVisible(selectors.itemSummary.basicData); + }); + + expect(result).toBeTruthy(); }); - it(`should check the item summary shows fields from tags section`, done => { - nightmare - .getInnerText(selectors.itemSummary.tags) - .then(result => { - expect(result).toContain('Color: Yellow'); - done(); - }).catch(done.fail); + it(`should now check the item summary preview shows fields from basic data`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.basicData, 'Name: Gem of Mind') + .getInnerText(selectors.itemSummary.basicData); + + expect(result).toContain('Name: Gem of Mind'); }); - it(`should check the item summary shows fields from niches section`, done => { - nightmare - .getInnerText(selectors.itemSummary.niche) - .then(result => { - expect(result).toContain('Warehouse One: A1'); - done(); - }).catch(done.fail); + it(`should now check the item summary preview shows fields from tags`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.tags, 'Color: Red') + .getInnerText(selectors.itemSummary.tags); + + expect(result).toContain('Color: Red'); }); - it(`should check the item summary shows fields from botanical section`, done => { - nightmare - .getInnerText(selectors.itemSummary.botanical) - .then(result => { - expect(result).toContain('Botanical: Hedera helix'); - done(); - }).catch(done.fail); + it(`should now check the item summary preview shows fields from niche`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.niche, 'Warehouse One: A4') + .getInnerText(selectors.itemSummary.niche); + + expect(result).toContain('Warehouse One: A4'); }); - it(`should check the item summary shows fields from barcodes section`, done => { - nightmare - .getInnerText(selectors.itemSummary.barcode) - .then(result => { - expect(result).toContain('1'); - done(); - }).catch(done.fail); + it(`should now check the item summary preview shows fields from botanical`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.botanical, 'Botanical: -') + .getInnerText(selectors.itemSummary.botanical); + + expect(result).toContain('Botanical: -'); + }); + + it(`should now check the item summary preview shows fields from barcode`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.barcode, '4') + .getInnerText(selectors.itemSummary.barcode); + + expect(result).toContain('4'); + }); + + it(`should now close the summary popup`, async () => { + const result = await nightmare + .waitToClick(selectors.itemsIndex.closeItemSummaryPreview) + .isVisible(selectors.itemSummary.basicData); + + expect(result).toBeFalsy(); + }); + + it(`should navigate to the one of the items detailed section`, async () => { + const url = await nightmare + .waitToClick(selectors.itemsIndex.searchResult) + .waitForURL('summary') + .parsedUrl(); + + expect(url.hash).toContain('summary'); + }); + + it(`should check the item summary shows fields from basic data section`, async () => { + const result = await nightmare + .waitForTextInElement(selectors.itemSummary.basicData, 'Name: Gem of Mind') + .getInnerText(selectors.itemSummary.basicData); + + expect(result).toContain('Name: Gem of Mind'); + }); + + it(`should check the item summary shows fields from tags section`, async () => { + const result = await nightmare + .getInnerText(selectors.itemSummary.tags); + + expect(result).toContain('Color: Red'); + }); + + it(`should check the item summary shows fields from niches section`, async () => { + const result = await nightmare + .getInnerText(selectors.itemSummary.niche); + + expect(result).toContain('Warehouse One: A4'); + }); + + it(`should check the item summary shows fields from botanical section`, async () => { + const result = await nightmare + .getInnerText(selectors.itemSummary.botanical); + + expect(result).toContain('Botanical: -'); + }); + + it(`should check the item summary shows fields from barcodes section`, async () => { + const result = await nightmare + .getInnerText(selectors.itemSummary.barcode); + + expect(result).toContain('4'); }); }); });