import { expectPlausibleInAction } from './support/test-utils' import { test } from '@playwright/test' import { LOCAL_SERVER_ADDR } from './support/server' test.describe('manual extension', () => { test('can trigger custom events with and without a custom URL if pageview was sent with the default URL', async ({ page }) => { await page.goto('/manual.html') await expectPlausibleInAction(page, { action: () => page.click('#pageview-trigger'), expectedRequests: [ { n: 'pageview', u: `${LOCAL_SERVER_ADDR}/manual.html` } ] }) await expectPlausibleInAction(page, { action: () => page.click('#custom-event-trigger'), expectedRequests: [ { n: 'CustomEvent', u: `${LOCAL_SERVER_ADDR}/manual.html` } ] }) await expectPlausibleInAction(page, { action: () => page.click('#custom-event-trigger-custom-url'), expectedRequests: [ { n: 'CustomEvent', u: `https://example.com/custom/location` } ] }) }) test('can trigger custom events with and without a custom URL if pageview was sent with a custom URL', async ({ page }) => { await page.goto('/manual.html') await expectPlausibleInAction(page, { action: () => page.click('#pageview-trigger-custom-url'), expectedRequests: [ { n: 'pageview', u: `https://example.com/custom/location` } ] }) await expectPlausibleInAction(page, { action: () => page.click('#custom-event-trigger'), expectedRequests: [ { n: 'CustomEvent', u: `${LOCAL_SERVER_ADDR}/manual.html` } ] }) await expectPlausibleInAction(page, { action: () => page.click('#custom-event-trigger-custom-url'), expectedRequests: [ { n: 'CustomEvent', u: `https://example.com/custom/location` } ] }) }) test('can trigger custom events with interactive: false', async ({ page }) => { await page.goto('/manual.html') await expectPlausibleInAction(page, { action: () => page.evaluate(() => window.plausible('Non-Interactive Custom Event', { interactive: false }) ), expectedRequests: [ { n: 'Non-Interactive Custom Event', u: `${LOCAL_SERVER_ADDR}/manual.html`, i: false } ] }) }) })