import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; describe('Claim detail', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .loginAndModule('salesPerson', 'claim') .accessToSearchResult('4') .accessToSection('claim.card.detail'); }); it('should add the first claimable item from ticket to the claim', async() => { const result = await nightmare .waitToClick(selectors.claimDetail.addItemButton) .waitToClick(selectors.claimDetail.firstClaimableSaleFromTicket) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it('should confirm the claim contains now two items', async() => { const result = await nightmare .countElement(selectors.claimDetail.claimDetailLine); expect(result).toEqual(2); }); it('should edit de second item claimed quantity', async() => { const result = await nightmare .clearInput(selectors.claimDetail.secondItemQuantityInput) .write(selectors.claimDetail.secondItemQuantityInput, 10) .write('body', '\u000d') // simulates enter .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it('should confirm the second item, and the claimed total were correctly edited', async() => { const claimedQuantity = await nightmare .waitToGetProperty(selectors.claimDetail.secondItemQuantityInput, 'value'); const totalClaimed = await nightmare .waitToGetProperty(selectors.claimDetail.totalClaimed, 'innerText'); expect(claimedQuantity).toEqual('10'); expect(totalClaimed).toContain('29.50'); }); it('should delete the second item from the claim', async() => { const result = await nightmare .waitToClick(selectors.claimDetail.secondItemDeleteButton) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it('should confirm the claim contains now one item', async() => { const result = await nightmare .countElement(selectors.claimDetail.claimDetailLine); expect(result).toEqual(1); }); it('should login as salesAssistant to be redirected to the next claim section', async() => { const result = await nightmare .loginAndModule('salesAssistant', 'claim') .accessToSearchResult('2') .accessToSection('claim.card.detail') .waitToClick(selectors.claimDetail.addItemButton) .waitToClick(selectors.claimDetail.firstClaimableSaleFromTicket) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); it(`should have been redirected to the next section in claims`, async() => { const url = await nightmare .waitForURL('/development') .parsedUrl(); expect(url.hash).toContain('development'); }); });