import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Item Create botanical 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 Mjolnir', async () => { const result = await nightmare .wait(selectors.itemsIndex.searchItemInput) .type(selectors.itemsIndex.searchItemInput, 'Mjolnir') .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 botanical`, async () => { const url = await nightmare .waitForTextInElement(selectors.itemsIndex.searchResult, 'Mjolnir') .waitToClick(selectors.itemsIndex.searchResult) .waitToClick(selectors.itemBotanical.botanicalButton) .waitForURL('botanical') .parsedUrl(); expect(url.hash).toContain('botanical'); }); it(`should create a new botanical for the item with id Mjolnir`, async () => { const result = await 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) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it(`should confirm the botanical for item Mjolnir was created`, async () => { const result = await nightmare .click(selectors.itemBasicData.basicDataButton) .wait(selectors.itemBasicData.nameInput) .click(selectors.itemBotanical.botanicalButton) .waitForTextInInput(selectors.itemBotanical.botanicalInput, 'Cicuta maculata') .waitToGetProperty(selectors.itemBotanical.botanicalInput, 'value'); expect(result).toEqual('Cicuta maculata'); }); it(`should confirm the Genus for item Mjolnir was created`, async () => { const result = await nightmare .waitForTextInInput(selectors.itemBotanical.genusSelect, 'Abelia') .waitToGetProperty(selectors.itemBotanical.genusSelect, 'value'); expect(result).toEqual('Abelia'); }); it(`should confirm the Species for item Mjolnir was created`, async () => { const result = await nightmare .waitToGetProperty(selectors.itemBotanical.speciesSelect, 'value'); expect(result).toEqual('dealbata'); }); it(`should edit botanical for the item Mjolnir`, async () => { const result = await 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) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it(`should confirm the botanical for item Mjolnir was edited`, async () => { const result = await nightmare .click(selectors.itemBasicData.basicDataButton) .wait(selectors.itemBasicData.nameInput) .click(selectors.itemBotanical.botanicalButton) .waitForTextInInput(selectors.itemBotanical.botanicalInput, 'Herp Derp') .waitToGetProperty(selectors.itemBotanical.botanicalInput, 'value'); expect(result).toEqual('Herp Derp'); }); it(`should confirm the Genus for item Mjolnir was edited`, async () => { const result = await nightmare .waitForTextInInput(selectors.itemBotanical.genusSelect, 'Abies') .waitToGetProperty(selectors.itemBotanical.genusSelect, 'value'); expect(result).toEqual('Abies'); }); it(`should confirm the Species for item Mjolnir was edited`, async () => { const result = await nightmare .waitToGetProperty(selectors.itemBotanical.speciesSelect, 'value'); expect(result).toEqual('decurrens'); }); });