mcpField
E
e2e-test-suite-init

e2e-test-suite-init

github.com/agentmantisTesting & quality12122 installsUpdated 29w ago
Repository

About e2e-test-suite-init

A setup skill that scaffolds an E2E test directory and supporting files for Playwright. It checks for an existing suite before proceeding, follows the e2e-test-conventions skill, and adapts authentication and base URL settings to the project.

Key features

  1. 01Scaffold the e2e/ directory
  2. 02Generate Playwright configuration and helpers
  3. 03Set up authentication and environment loading
  4. 04Configure browser and test suites
  5. 05Adapt settings to the project

Use cases

  1. 01Start a Playwright E2E test suite
  2. 02Add test infrastructure to a project
  3. 03Create a suite without overwriting existing e2e/

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/agentmantis/test-skills --skill e2e-test-suite-init

After installing, type/e2e-test-suite-initin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
base-page-template.md
env-config-template.md
fixtures-template.md
playwright-config-template.md

Details

From the project README

Initialise E2E Test Suite

Scaffold the entire e2e/ directory structure with all configuration files, base classes, fixtures, and helpers needed to start writing Playwright E2E tests.


Pre-Flight Check

  1. Check if e2e/ already exists. If so, abort and inform the user — do NOT overwrite an existing test suite.
  2. Check if Playwright is installed. If @playwright/test is not in package.json, add it.

Workflow

Step 1 — Create the Directory Structure
e2e/
├── auth/
│   └── auth.setup.ts
├── fixtures/
│   └── base.ts
├── helpers/
│   └── env-config.ts
├── poms/
│   └── base.page.ts
├── test-data/
├── tests/
│   ├── handover/
│   ├── regression/
│   └── smoke/
├── .auth/                   # git-ignored, holds saved session state
├── .gitignore
├── .env.example
├── playwright.config.ts
└── tsconfig.json
Step 2 — Generate Configuration Files

Generate each file using the reference templates:

FileTemplate Reference
playwright.config.tsreferences/playwright-config-template.md
poms/base.page.tsreferences/base-page-template.md
fixtures/base.tsreferences/fixtures-template.md
helpers/env-config.tsreferences/env-config-template.md
auth/auth.setup.tsSee e2e-test-conventions skill, references/auth-setup.md
Step 3 — Generate Support Files

e2e/.gitignore:

.auth/
.env
.env.*
!.env.example
test-results/
playwright-report/
blob-report/

e2e/.env.example:

BASE_URL="https://your-app.example.com"
LOGIN_EMAIL="[email protected]"
LOGIN_PASSWORD="your-password"
AUTH_FILE="e2e/.auth/user.json"

e2e/tsconfig.json:

{
    "compilerOptions": {
        "target": "ES2022",
        "module": "commonjs",
        "moduleResolution": "node",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true,
        "resolveJsonModule": true,
        "outDir": "./dist",
        "rootDir": "."
    },
    "include": ["**/*.ts"],
    "exclude": ["node_modules", "dist"]
}
Step 4 — Adapt to the Project

Ask the user (or infer from the existing codebase) about:

  1. Login page URL — to customise auth.setup.ts
  2. Post-login URL — the URL to wait for after login (e.g., /dashboard, /home)
  3. Auth storage method — cookies/localStorage only, or IndexedDB (Firebase, Supabase, etc.)
  4. Base URL — the application URL for the default environment
Step 5 — Print Next Steps

After generating all files, tell the user:

  1. Install Playwright browsers: npx playwright install
  2. Copy .env.example to .env.production and fill in values
  3. Create a POM for the first page: /create-pom [page-name]
  4. Create the first test: /create-regression-test [feature]

Rules

  • Never overwrite an existing e2e/ directory
  • All generated code must be TypeScript
  • Follow the e2e-test-conventions skill for all patterns
  • Use the two-layer env loading pattern (getEnvConfig(), getBaseUrl(), etc.)
  • Auth file path must come from AUTH_FILE env var via getAuthFilePath()
  • All five browsers must be configured in playwright.config.ts
  • All three suites (regression, handover, smoke) must be configured

Comments

Markdown supported