import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Item Create barcodes path', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .waitForLogin('buyer'); }); 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', async () => { const result = await nightmare .wait(selectors.itemsIndex.searchItemInput) .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 to access to the item barcodes`, async () => { const url = await nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Time') .waitToClick(selectors.itemsIndex.searchResult) .waitToClick(selectors.itemBarcodes.barcodeButton) .waitForURL('barcode') .parsedUrl(); expect(url.hash).toContain('barcode'); }); it(`should click create a new code and delete a former one`, async () => { const result = await nightmare .waitToClick(selectors.itemBarcodes.firstCodeRemoveButton) .waitToClick(selectors.itemBarcodes.addBarcodeButton) .wait(selectors.itemBarcodes.thirdCodeInput) .type(selectors.itemBarcodes.thirdCodeInput, '5') .waitToClick(selectors.itemBarcodes.submitBarcodesButton) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it(`should confirm the barcode 5 is created and it is now the third barcode as the first was deleted`, async () => { const result = await nightmare .click(selectors.itemBasicData.basicDataButton) .wait(selectors.itemBasicData.nameInput) .click(selectors.itemBarcodes.barcodeButton) .waitForTextInInput(selectors.itemBarcodes.thirdCodeInput, '5') .waitToGetProperty(selectors.itemBarcodes.thirdCodeInput, 'value'); expect(result).toEqual('5'); }); });