import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; describe('Claim action path', () => { let browser; let page; beforeAll(async() => { browser = await getBrowser(); page = browser.page; await page.loginAndModule('claimManager', 'claim'); await page.accessToSearchResult('2'); await page.accessToSection('claim.card.action'); }); afterAll(async() => { await browser.close(); }); it('should import the claim', async() => { await page.waitToClick(selectors.claimAction.importClaimButton); const message = await page.waitForSnackbar(); expect(message.text).toContain('Data saved!'); }); it('should import the second importable ticket', async() => { // the animation adding the header element for the claimed total // obscures somehow other elements for about 2 seconds await page.waitForTimeout(3000); await page.waitToClick(selectors.claimAction.importTicketButton); await page.waitToClick(selectors.claimAction.secondImportableTicket); const message = await page.waitForSnackbar(); expect(message.text).toContain('Data saved!'); }); it('should edit the second line destination field', async() => { await page.waitForContentLoaded(); await page.autocompleteSearch(selectors.claimAction.secondLineDestination, 'Bueno'); const message = await page.waitForSnackbar(); expect(message.text).toContain('Data saved!'); }); it('should delete the first line', async() => { await page.waitToClick(selectors.claimAction.firstDeleteLine); const message = await page.waitForSnackbar(); expect(message.text).toContain('Data saved!'); }); it('should refresh the view to check the remaining line is the expected one', async() => { await page.reloadSection('claim.card.action'); const result = await page.waitToGetProperty(selectors.claimAction.firstLineDestination, 'value'); expect(result).toEqual('Bueno'); }); it('should delete the current first line', async() => { await page.waitToClick(selectors.claimAction.firstDeleteLine); const message = await page.waitForSnackbar(); expect(message.text).toContain('Data saved!'); }); it('should check the "is paid with mana" checkbox', async() => { await page.waitToClick(selectors.claimAction.isPaidWithManaCheckbox); const message = await page.waitForSnackbar(); expect(message.text).toContain('Data saved!'); }); it('should confirm the "is paid with mana" is checked', async() => { await page.reloadSection('claim.card.action'); const isPaidWithManaCheckbox = await page.checkboxState(selectors.claimAction.isPaidWithManaCheckbox); expect(isPaidWithManaCheckbox).toBe('checked'); }); });