import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/helpers'; describe('add item tax path', () => { const nightmare = createNightmare(); beforeAll(() => { return nightmare .waitForLogin('developer'); }); it('should access to the items index by clicking the items button', () => { return nightmare .click(selectors.moduleAccessView.itemsSectionButton) .wait(selectors.itemsIndex.createItemButton) .parsedUrl() .then(url => { expect(url.hash).toEqual('#!/item/list'); }); }); it('should search for the item Gem of Time', () => { return nightmare .wait(selectors.itemsIndex.searchResult) .type(selectors.itemsIndex.searchItemInput, 'Gem of Time') .click(selectors.itemsIndex.searchButton) .waitForNumberOfElements(selectors.itemsIndex.searchResult, 1) .countSearchResults(selectors.itemsIndex.searchResult) .then(result => { expect(result).toEqual(1); }); }); it(`should click on the search result to access to the item tax`, () => { return nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Time') .waitToClick(selectors.itemsIndex.searchResult) .waitToClick(selectors.itemTax.taxButton) .waitForURL('tax') .url() .then(url => { expect(url).toContain('tax'); }); }); it(`should add the item tax to all countries`, () => { return nightmare .waitToClick(selectors.itemTax.firstClassSelect) .waitToClick(selectors.itemTax.firstClassSelectOptionTwo) .waitToClick(selectors.itemTax.secondClassSelect) .waitToClick(selectors.itemTax.secondClassSelectOptionOne) .waitToClick(selectors.itemTax.thirdClassSelect) .waitToClick(selectors.itemTax.thirdClassSelectOptionTwo) .click(selectors.itemTax.submitTaxButton) .waitForSnackbar() .then(result => { expect(result).toContain('Data saved!'); }); }); it(`should confirm the item tax class was edited`, () => { return nightmare .click(selectors.itemTags.tagsButton) .wait(selectors.itemTags.firstTagSelect) .waitToClick(selectors.itemTax.taxButton) .waitForTextInInput(selectors.itemTax.firstClassSelect, 'general') .getInputValue(selectors.itemTax.firstClassSelect) .then(result => { expect(result).toEqual('General VAT'); return nightmare .getInputValue(selectors.itemTax.secondClassSelect); }) .then(result => { expect(result).toEqual('Reduced VAT'); return nightmare .getInputValue(selectors.itemTax.thirdClassSelect); }) .then(result => { expect(result).toEqual('General VAT'); }); }); });