← Back to library
Playwrightfixturesadvancedv1.20+

Pre-set localStorage before navigation

Use addInitScript to inject localStorage values before the page boots — ideal for themes, feature flags, and onboarding state.

1test('dashboard loads with pre-set dark mode', async ({ page }) => {
2  // addInitScript runs in the browser before every page.goto() in this test
3  await page.addInitScript(() => {
4    window.localStorage.setItem('theme', 'dark');
5    window.localStorage.setItem('onboardingComplete', 'true');
6  });
7
8  await page.goto('/dashboard');
9
10  // Theme is already applied — no toggle click needed
11  await expect(page.locator('html')).toHaveAttribute('data-theme', 'dark');
12
13  // Onboarding modal should not appear for returning users
14  await expect(page.getByTestId('onboarding-modal')).not.toBeVisible();
15});
#localStorage#addInitScript#theme#feature flag#setup