import { Browser, launch, Page } from 'puppeteer'; import { addErrorHandler, baseUrl, puppeteerConfig } from './helpers'; export const selectors = { ready: '#ready', trackEventBtn: '#track-event', track: '.track', }; describe('BDD tests', () => { let browser: Browser; let page: Page; const url = createUrl(); function createUrl(): string { const outputUrl = new URL(baseUrl); return outputUrl.toString(); } beforeAll(async () => { browser = await launch(puppeteerConfig); page = await browser.newPage(); addErrorHandler(page); }); test('should trackAction onTrack event', async () => { await page.goto(url); await page.waitForSelector(selectors.ready); await page.click(selectors.trackEventBtn); await page.click(selectors.trackEventBtn); const track = await page.$$(selectors.track); if (!track) { throw new Error('Cannot find content'); } expect(track.length).toBe(2); }); afterAll(async () => { await page.close(); await browser.close(); }); });