playwright-auth-state
Playwright workflows for authenticated browser state reuse through storageState and setup projects.
Playwright workflows for deterministic third-party responses using page.route().
Claude Code
$ npx -y skills add hzijad/playwright-agent-skills --skill playwright-network-mocking --agent claude-code
Codex
$ npx skills add hzijad/playwright-agent-skills --skill playwright-network-mocking -a codex -y
Cursor
$ npx skills add hzijad/playwright-agent-skills --skill playwright-network-mocking -a cursor -y
Gemini CLI
$ npx skills add hzijad/playwright-agent-skills --skill playwright-network-mocking -a gemini-cli -y
GitHub Copilot
$ npx skills add hzijad/playwright-agent-skills --skill playwright-network-mocking -a github-copilot -y
OpenCode
$ npx skills add hzijad/playwright-agent-skills --skill playwright-network-mocking -a opencode -y
Windsurf
$ npx skills add hzijad/playwright-agent-skills --skill playwright-network-mocking -a windsurf -y
name: playwright-network-mocking description: Playwright workflows for deterministic third-party responses using page.route().
Use this skill when a test depends on a slow, unreliable, or external service and you need deterministic responses without hitting the real provider. It lets you isolate the boundary that matters while keeping the rest of the application real.
Do not use this skill when the real third-party integration is the feature under test, or when the app is already local and deterministic without request interception.
Use `page.route()` to replace external responses with deterministic data before the page makes the request.
import { test, expect } from '@playwright/test';
test('shows premium dashboard when billing is active', async ({ page }) => {
await page.route('**/api/v1/billing/status', async route => {
await route.fulfill({
status: 200,
json: {
subscription: 'active',
plan: 'premium',
},
});
});
await page.goto('/dashboard');
await expect(page.getByRole('heading', { name: 'Welcome to Premium' })).toBeVisible();
});Intercept only the unstable boundary and leave the rest of the application real. If the code under test makes several external calls, mock the minimum necessary surface area.
Prefer `page.route()` when the response is part of the behavior under test and must be controlled from the browser context. If you need broader, suite-wide control, consider a fixture or a backend test double instead of scattering route handlers through individual tests.
Verify the intercepted request produces the expected UI and that the real service is not required for the test to pass.
Typical checks:
npx playwright test tests/dashboard.spec.ts
Use trace viewer or UI mode to confirm the mocked response is the one the app consumed.
Playwright test patterns that avoid the mistakes agents make by default. Playwright Agent Skills is a small, opinionated set of reusable prompts for writing and reviewing Playwright tests.
Playwright workflows for authenticated browser state reuse through storageState and setup projects.
Conducts rigorous authoring and review of Playwright E2E tests. Enforces accessibility-first locators, web-first assertions,…
Diagnostic Playwright workflows for flaky or failing tests, including trace analysis, UI mode, and state isolation.
Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…
Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…
DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…