import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Item Edit basic data 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 Mind', async () => { const resultCount = await nightmare .wait(selectors.itemsIndex.searchResult) .type(selectors.itemsIndex.searchItemInput, 'Gem of Mind') .click(selectors.itemsIndex.searchButton) .waitForNumberOfElements(selectors.itemsIndex.searchResult, 1) .countElement(selectors.itemsIndex.searchResult); expect(resultCount).toEqual(1); }); it(`should click on the search result to access to the item basic data`, async () => { const url = await nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Mind') .waitToClick(selectors.itemsIndex.searchResult) .waitToClick(selectors.itemBasicData.basicDataButton) .waitForURL('data') .url(); expect(url).toContain('data'); }); it(`should edit the item basic data`, async () => { const result = await nightmare .clearInput(selectors.itemBasicData.nameInput) .type(selectors.itemBasicData.nameInput, 'Rose of Purity') .waitToClick(selectors.itemBasicData.typeSelect) .waitToClick(selectors.itemBasicData.typeSelectOptionThree) .waitToClick(selectors.itemBasicData.intrastatSelect) .waitToClick(selectors.itemBasicData.intrastatSelectOptionOne) .clearInput(selectors.itemBasicData.relevancyInput) .type(selectors.itemBasicData.relevancyInput, '1') .waitToClick(selectors.itemBasicData.originSelect) .waitToClick(selectors.itemBasicData.originSelectOptionTwo) .waitToClick(selectors.itemBasicData.expenceSelect) .waitToClick(selectors.itemBasicData.expenceSelectOptionThree) .clearInput(selectors.itemBasicData.longNameInput) .type(selectors.itemBasicData.longNameInput, 'RS Rose of Purity') .waitToClick(selectors.itemBasicData.isActiveCheckbox) .click(selectors.itemBasicData.submitBasicDataButton) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it(`should confirm the item name was edited`, async () => { const result = await nightmare .click(selectors.itemNiches.nicheButton) .wait(selectors.itemNiches.firstWarehouseDisabled) .waitToClick(selectors.itemBasicData.basicDataButton) .waitProperty(selectors.itemBasicData.nameInput, 'value') .getProperty(selectors.itemBasicData.nameInput, 'value'); expect(result).toEqual('Rose of Purity'); }); it(`should confirm the item type was edited`, async () => { const result = await nightmare .waitProperty(selectors.itemBasicData.typeSelect, 'value') .getProperty(selectors.itemBasicData.typeSelect, 'value'); expect(result).toEqual('Crisantemo'); }); it(`should confirm the item intrastad was edited`, async () => { const result = await nightmare .waitProperty(selectors.itemBasicData.intrastatSelect, 'value') .getProperty(selectors.itemBasicData.intrastatSelect, 'value'); expect(result).toEqual('5080000 Coral y materiales similares'); }); it(`should confirm the item relevancy was edited`, async () => { const result = await nightmare .waitProperty(selectors.itemBasicData.relevancyInput, 'value') .getProperty(selectors.itemBasicData.relevancyInput, 'value'); expect(result).toEqual('1'); }); it(`should confirm the item origin was edited`, async () => { const result = await nightmare .waitProperty(selectors.itemBasicData.originSelect, 'value') .getProperty(selectors.itemBasicData.originSelect, 'value'); expect(result).toEqual('Spain'); }); it(`should confirm the item expence was edited`, async () => { const result = await nightmare .waitProperty(selectors.itemBasicData.expenceSelect, 'value') .getProperty(selectors.itemBasicData.expenceSelect, 'value'); expect(result).toEqual('Adquisición mercancia Extracomunitaria'); }); it(`should confirm the item long name was edited`, async () => { const result = await nightmare .waitProperty(selectors.itemBasicData.longNameInput, 'value') .getProperty(selectors.itemBasicData.longNameInput, 'value'); expect(result).toEqual('RS Rose of Purity'); }); it('should confirm isActive checkbox is unchecked', async () => { const result = await nightmare .evaluate(selector => { return document.querySelector(selector).checked; }, selectors.itemBasicData.isActiveCheckbox); expect(result).toBeFalsy(); }); });