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('administrative', '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.type).toBe('success'); }); 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.waitFor(3000); await page.waitToClick(selectors.claimAction.importTicketButton); await page.waitToClick(selectors.claimAction.secondImportableTicket); const message = await page.waitForSnackbar(); expect(message.type).toBe('success'); }); 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.type).toBe('success'); }); it('should delete the first line', async() => { await page.waitToClick(selectors.claimAction.firstDeleteLine); const message = await page.waitForSnackbar(); expect(message.type).toBe('success'); }); 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.type).toBe('success'); }); it('should check the "is paid with mana" checkbox', async() => { page.waitFor(3000); // can't use waitForNavigation here and needs more time than a single second to get the section ready... await page.waitToClick(selectors.claimAction.isPaidWithManaCheckbox); const message = await page.waitForSnackbar(); expect(message.type).toBe('success'); }); it('should confirm the "is paid with mana" checkbox is checked', async() => { await page.reloadSection('claim.card.action'); const result = await page.checkboxState(selectors.claimAction.isPaidWithManaCheckbox); expect(result).toBe('checked'); }); });