import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/helpers'; describe('Item', () => { describe('Create niche path', () => { const nightmare = createNightmare(); beforeAll(() => { return nightmare .waitForLogin('buyer'); }); it('should access to the items index by clicking the items button', done => { return nightmare .click(selectors.moduleAccessView.itemsSectionButton) .wait(selectors.itemsIndex.createItemButton) .parsedUrl() .then(url => { expect(url.hash).toEqual('#!/item/index'); done(); }).catch(done.fail); }); it('should search for the item Gem of Time', done => { return 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 click on the search result to access to the item niches`, done => { return nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Gem of Time') .waitToClick(selectors.itemsIndex.searchResult) .waitToClick(selectors.itemNiches.nicheButton) .waitForURL('niche') .url() .then(url => { expect(url).toContain('niche'); done(); }).catch(done.fail); }); it(`should click create a new niche and delete a former one`, done => { return nightmare .waitToClick(selectors.itemNiches.addNicheButton) .waitToClick(selectors.itemNiches.secondNicheRemoveButton) .waitToClick(selectors.itemNiches.thirdWarehouseSelect) .waitToClick(selectors.itemNiches.thirdWarehouseSelectFourthOption) .type(selectors.itemNiches.thirdCodeInput, 'A4') .click(selectors.itemNiches.submitNichesButton) .waitForLastSnackbar() .then(result => { expect(result).toEqual('Data saved!'); done(); }).catch(done.fail); }); it(`should confirm the first niche is the expected one`, done => { return nightmare .click(selectors.itemBasicData.basicDataButton) .wait(selectors.itemBasicData.nameInput) .click(selectors.itemNiches.nicheButton) .waitForTextInInput(selectors.itemNiches.firstWarehouseSelect, 'Warehouse One') .getInputValue(selectors.itemNiches.firstWarehouseSelect) .then(result => { expect(result).toEqual('Warehouse One'); return nightmare .getInputValue(selectors.itemNiches.firstCodeInput); }) .then(result => { expect(result).toEqual('A1'); done(); }).catch(done.fail); }); it(`should confirm the second niche is the expected one`, done => { return nightmare .getInputValue(selectors.itemNiches.secondWarehouseSelect) .then(result => { expect(result).toEqual('Warehouse Three'); return nightmare .getInputValue(selectors.itemNiches.secondCodeInput); }) .then(result => { expect(result).toEqual('A3'); done(); }).catch(done.fail); }); it(`should confirm the third niche is the expected one`, done => { return nightmare .getInputValue(selectors.itemNiches.thirdWarehouseSelect) .then(result => { expect(result).toEqual('Warehouse Two'); return nightmare .getInputValue(selectors.itemNiches.thirdCodeInput); }) .then(result => { expect(result).toEqual('A4'); done(); }).catch(done.fail); }); }); });