e2e-test-builder
Automates the creation of robust Playwright end-to-end tests using the Page Object Model pattern with isolated database environments.
Install
mkdir -p .claude/skills/e2e-test-builder && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6081" && unzip -o skill.zip -d .claude/skills/e2e-test-builder && rm skill.zipInstalls to .claude/skills/e2e-test-builder
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create Playwright E2E tests using Page Object Model pattern with database isolationKey capabilities
- →Isolate databases per test file
- →Implement Page Object Model for UI interactions
- →Manage test user roles for authentication flows
- →Automate UI navigation and validation
- →Run integration tests in headed or headless modes
How it works
The skill uses a helper to reset database state before each test and enforces the use of Page Object Models to encapsulate element selection and interaction.
Inputs & outputs
When to use e2e-test-builder
- →Adding feature-specific E2E tests
- →Automating authentication flow testing
- →Validating UI interactions for different user roles
- →Setting up clean test environments per file
About this skill
E2E Test Builder
Use this skill when creating Playwright end-to-end tests for this project.
When to Use
- Adding tests for a new feature
- Testing user flows (authentication, content submission, admin actions)
- Validating UI interactions and navigation
Key Concepts
Database Isolation
Each test file gets its own isolated database copy:
- Call
setupDatabaseIsolation(page)inbeforeEach - Auto-detects test file name from stack trace
- Ensures complete test independence
Page Object Model (POM)
All tests use POMs to encapsulate page interactions:
- POMs live in
tests/pages/ - Extend
BasePagefor common functionality - Use
data-testidattributes for element selection
Test Users
Three users with different permission levels:
admin- Full access (use for admin tests)contributor- Moderator role (can moderate content)viewer- Member role (read-only access)
Quick Start
import { test, expect } from '@playwright/test'
import { HomePage, ContentListPage } from '../../pages'
import { setupDatabaseIsolation } from '../../helpers/database-isolation'
import { loginAs } from '../../helpers/auth'
test.describe('My Feature', () => {
test.beforeEach(async ({ page }) => {
await setupDatabaseIsolation(page)
await loginAs(page, 'admin') // if auth needed
})
test('can do something', async ({ page }) => {
const homePage = new HomePage(page)
await homePage.goto()
// ... test logic
})
})
Reference Files
- PAGE-OBJECTS.md - Creating Page Object Model classes
- TEST-PATTERNS.md - Test structure, assertions, helpers
- TEMPLATES.md - Copy-paste starter templates
Commands
bun run test:integration # Run all tests
bun run test:integration:ui # Interactive UI mode
bun run test:integration:headed # See browser
bun test:integration tests/e2e/path # Run specific file
Directory Structure
tests/
├── e2e/ # Test suites by category
│ ├── public/ # Public user flows
│ ├── auth/ # Authentication flows
│ ├── content/ # Content submission
│ └── admin/ # Admin workflows
├── pages/ # Page Object Models
├── helpers/ # Auth, database isolation
├── fixtures/ # Test data definitions
└── setup/ # Global setup/teardown
When not to use it
- →Sharing database state between tests
- →Hardcoding selectors in test logic
Limitations
- →Requires use of data-testid attributes
- →Must follow specific directory structure
How it compares
It mandates database isolation and specific POM patterns, ensuring test independence compared to standard Playwright setups.
Compared to similar skills
e2e-test-builder side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| e2e-test-builder (this skill) | 1 | 7mo | Review | Intermediate |
| ui-ux-expert-skill | 91 | 9mo | Review | Advanced |
| dependency-upgrade | 26 | 5mo | Review | Intermediate |
| vitest | 41 | 6mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by svelte-society
View all by svelte-society →You might also like
ui-ux-expert-skill
fercracix33
Technical workflow for implementing accessible React user interfaces with shadcn/ui, Tailwind CSS, and TanStack Query. Includes 6-phase process with mandatory Style Guide compliance, Context7 best practices consultation, Chrome DevTools validation, and WCAG 2.1 AA accessibility standards. Use after Test Agent, Implementer, and Supabase agents complete their work.
dependency-upgrade
wshobson
Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.
vitest
antfu
Vitest fast unit testing framework powered by Vite with Jest-compatible API. Use when writing tests, mocking, configuring coverage, or working with test filtering and fixtures.
chrome-devtools
mrgoonie
Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
playwright-browser-automation
lackeyjb
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
angular-best-practices
sickn33
Angular performance optimization and best practices guide. Use when writing, reviewing, or refactoring Angular code for optimal performance, bundle size, and rendering efficiency.