import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Item summary path', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .loginAndModule('employee', 'item'); }); it('should search for an item', async() => { const result = await nightmare .wait(selectors.itemsIndex.searchItemInput) .type(selectors.itemsIndex.searchItemInput, 'Object1 Gem1 5') .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`, async() => { const isVisibleBefore = await nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Object1 Gem1 5') .isVisible(selectors.itemSummary.basicData); const isVisibleAfter = await nightmare .waitToClick(selectors.itemsIndex.searchResultPreviewButton) .isVisible(selectors.itemSummary.basicData); expect(isVisibleBefore).toBeFalsy(); expect(isVisibleAfter).toBeTruthy(); }); it(`should check the item summary preview shows fields from basic data`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.basicData, 'Object1 Gem1 5') .waitToGetProperty(selectors.itemSummary.basicData, 'innerText'); expect(result).toContain('Object1 Gem1 5'); }); it(`should check the item summary preview shows fields from tags`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.tags, 'Yellow') .waitToGetProperty(selectors.itemSummary.tags, 'innerText'); expect(result).toContain('Yellow'); }); it(`should check the item summary preview shows fields from niche`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.niche, 'A1') .waitToGetProperty(selectors.itemSummary.niche, 'innerText'); expect(result).toContain('A1'); }); it(`should check the item summary preview shows fields from botanical`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.botanical, 'Hedera helix') .waitToGetProperty(selectors.itemSummary.botanical, 'innerText'); expect(result).toContain('Hedera helix'); }); it(`should check the item summary preview shows fields from barcode`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.barcode, '1') .waitToGetProperty(selectors.itemSummary.barcode, 'innerText'); expect(result).toContain('1'); }); it(`should close the summary popup`, async() => { const result = await nightmare .waitToClick(selectors.itemsIndex.closeItemSummaryPreview) .isVisible(selectors.itemSummary.basicData); expect(result).toBeFalsy(); }); it('should search for other item', async() => { const result = await nightmare .clearInput('vn-item-index vn-searchbar input') .click(selectors.itemsIndex.searchButton) .type(selectors.itemsIndex.searchItemInput, 'Object2 Gem2 3') .click(selectors.itemsIndex.searchButton) .waitForNumberOfElements(selectors.itemsIndex.searchResult, 1) .countElement(selectors.itemsIndex.searchResult); expect(result).toEqual(1); }); it(`should now click on the search result summary button to open the item summary popup`, async() => { const isVisibleBefore = await nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Object2 Gem2 3') .isVisible(selectors.itemSummary.basicData); const isVisibleAfter = await nightmare .waitToClick(selectors.itemsIndex.searchResultPreviewButton) .isVisible(selectors.itemSummary.basicData); expect(isVisibleBefore).toBeFalsy(); expect(isVisibleAfter).toBeTruthy(); }); it(`should now check the item summary preview shows fields from basic data`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.basicData, 'Object2 Gem2 3') .waitToGetProperty(selectors.itemSummary.basicData, 'innerText'); expect(result).toContain('Object2 Gem2 3'); }); it(`should now check the item summary preview shows fields from tags`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.tags, 'Red') .waitToGetProperty(selectors.itemSummary.tags, 'innerText'); expect(result).toContain('Red'); }); it(`should now check the item summary preview shows fields from niche`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.niche, 'A4') .waitToGetProperty(selectors.itemSummary.niche, 'innerText'); expect(result).toContain('A4'); }); it(`should now check the item summary preview shows fields from botanical`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.botanical, '-') .waitToGetProperty(selectors.itemSummary.botanical, 'innerText'); expect(result).toContain('-'); }); it(`should now check the item summary preview shows fields from barcode`, async() => { const result = await nightmare .waitForTextInElement(selectors.itemSummary.barcode, '4') .waitToGetProperty(selectors.itemSummary.barcode, 'innerText'); 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, 'Object2 Gem2 3') .waitToGetProperty(selectors.itemSummary.basicData, 'innerText'); expect(result).toContain('Object2 Gem2 3'); }); it(`should check the item summary shows fields from tags section`, async() => { const result = await nightmare .waitToGetProperty(selectors.itemSummary.tags, 'innerText'); expect(result).toContain('Red'); }); it(`should check the item summary shows fields from niches section`, async() => { const result = await nightmare .waitToGetProperty(selectors.itemSummary.niche, 'innerText'); expect(result).toContain('One A4'); }); it(`should check the item summary shows fields from botanical section`, async() => { const result = await nightmare .waitToGetProperty(selectors.itemSummary.botanical, 'innerText'); expect(result).toContain('-'); }); it(`should check the item summary shows fields from barcodes section`, async() => { const result = await nightmare .waitToGetProperty(selectors.itemSummary.barcode, 'innerText'); expect(result).toContain('4'); }); });