| import { Page, test as Test } from '@playwright/test' |
| import { |
| getActiveExperiments, |
| CONTROL_VARIATION, |
| TREATMENT_VARIATION, |
| } from '@/events/components/experiments/experiments' |
|
|
| export async function turnOffExperimentsInPage(page: Page) { |
| await alterExperimentsInPage(page, CONTROL_VARIATION) |
| } |
|
|
| export async function turnOnExperimentsInPage(page: Page) { |
| await alterExperimentsInPage(page, TREATMENT_VARIATION) |
| } |
|
|
| async function alterExperimentsInPage( |
| page: Page, |
| variation: typeof TREATMENT_VARIATION | typeof CONTROL_VARIATION, |
| ) { |
| const experiments = getActiveExperiments('all') |
| |
| if (!experiments.length) { |
| await page.evaluate(() => { |
| console.log('No experiments to turn off, skipping') |
| }) |
| return |
| } |
| for (const experiment of getActiveExperiments('all')) { |
| await page.evaluate( |
| ({ experimentKey, variationType }) => { |
| |
| window.overrideControlGroup(experimentKey, variationType) |
| }, |
| { experimentKey: experiment.key, variationType: variation }, |
| ) |
| } |
| } |
|
|
| |
| |
| export function turnOffExperimentsBeforeEach(test: typeof Test) { |
| test.beforeEach(async ({ page }) => { |
| await page.goto('/') |
| await turnOffExperimentsInPage(page) |
| }) |
| } |
|
|
| export async function dismissCTAPopover(page: Page) { |
| |
| await page.evaluate(() => { |
| localStorage.setItem( |
| 'ctaPopoverState', |
| JSON.stringify({ |
| dismissedCount: 0, |
| lastDismissedAt: null, |
| permanentlyDismissed: true, |
| }), |
| ) |
| }) |
| await page.reload() |
| } |
|
|