import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/helpers'; describe('create item botanical 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, 'Mjolnir') .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 botanical`, () => { return nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Mjolnir') .waitToClick(selectors.itemsIndex.searchResult) .waitToClick(selectors.itemBotanical.botanicalButton) .waitForURL('botanical') .url() .then(url => { expect(url).toContain('botanical'); }); }); it(`should create a new botanical for the item with id Mjolnir`, () => { return nightmare .type(selectors.itemBotanical.botanicalInput, 'Cicuta maculata') .waitToClick(selectors.itemBotanical.genusSelect) .waitToClick(selectors.itemBotanical.genusSelectOptionOne) .waitToClick(selectors.itemBotanical.speciesSelect) .waitToClick(selectors.itemBotanical.speciesSelectOptionOne) .waitToClick(selectors.itemBotanical.submitBotanicalButton) .waitForSnackbar() .then(result => { expect(result).toContain('Data saved!'); }); }); it(`should confirm the botanical for item Mjolnir was created`, () => { return nightmare .click(selectors.itemBasicData.basicDataButton) .wait(selectors.itemBasicData.nameInput) .click(selectors.itemBotanical.botanicalButton) .waitForTextInInput(selectors.itemBotanical.botanicalInput, 'Cicuta maculata') .getInputValue(selectors.itemBotanical.botanicalInput) .then(result => { expect(result).toEqual('Cicuta maculata'); }); }); it(`should confirm the Genus for item Mjolnir was created`, () => { return nightmare .waitForTextInInput(selectors.itemBotanical.genusSelect, 'Abelia') .getInputValue(selectors.itemBotanical.genusSelect) .then(result => { expect(result).toEqual('Abelia'); }); }); it(`should confirm the Species for item Mjolnir was created`, () => { return nightmare .getInputValue(selectors.itemBotanical.speciesSelect) .then(result => { expect(result).toEqual('dealbata'); }); }); it(`should edit botanical for the item Mjolnir`, () => { return nightmare .clearInput(selectors.itemBotanical.botanicalInput) .type(selectors.itemBotanical.botanicalInput, 'Herp Derp') .waitToClick(selectors.itemBotanical.genusSelect) .waitToClick(selectors.itemBotanical.genusSelectOptionTwo) .waitToClick(selectors.itemBotanical.speciesSelect) .waitToClick(selectors.itemBotanical.speciesSelectOptionTwo) .waitToClick(selectors.itemBotanical.submitBotanicalButton) .waitForSnackbar() .then(result => { expect(result).toContain('Data saved!'); }); }); it(`should confirm the botanical for item Mjolnir was edited`, () => { return nightmare .click(selectors.itemBasicData.basicDataButton) .wait(selectors.itemBasicData.nameInput) .click(selectors.itemBotanical.botanicalButton) .waitForTextInInput(selectors.itemBotanical.botanicalInput, 'Herp Derp') .getInputValue(selectors.itemBotanical.botanicalInput) .then(result => { expect(result).toEqual('Herp Derp'); }); }); it(`should confirm the Genus for item Mjolnir was edited`, () => { return nightmare .waitForTextInInput(selectors.itemBotanical.genusSelect, 'Abies') .getInputValue(selectors.itemBotanical.genusSelect) .then(result => { expect(result).toEqual('Abies'); }); }); it(`should confirm the Species for item Mjolnir was edited`, () => { return nightmare .getInputValue(selectors.itemBotanical.speciesSelect) .then(result => { expect(result).toEqual('decurrens'); }); }); });