# E2e Test Suite Init

> |

- **Type:** Skill
- **Install:** `agentstack add skill-agentmantis-test-skills-e2e-test-suite-init`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [agentmantis](https://agentstack.voostack.com/s/agentmantis)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [agentmantis](https://github.com/agentmantis)
- **Source:** https://github.com/agentmantis/test-skills/tree/main/skills/e2e-test-suite-init

## Install

```sh
agentstack add skill-agentmantis-test-skills-e2e-test-suite-init
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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:

| File | Template Reference |
| ---- | ------------------ |
| `playwright.config.ts` | [references/playwright-config-template.md](references/playwright-config-template.md) |
| `poms/base.page.ts` | [references/base-page-template.md](references/base-page-template.md) |
| `fixtures/base.ts` | [references/fixtures-template.md](references/fixtures-template.md) |
| `helpers/env-config.ts` | [references/env-config-template.md](references/env-config-template.md) |
| `auth/auth.setup.ts` | See `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`:**
```env
BASE_URL="https://your-app.example.com"
LOGIN_EMAIL="test-user@example.com"
LOGIN_PASSWORD="your-password"
AUTH_FILE="e2e/.auth/user.json"
```

**`e2e/tsconfig.json`:**
```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

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [agentmantis](https://github.com/agentmantis)
- **Source:** [agentmantis/test-skills](https://github.com/agentmantis/test-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-agentmantis-test-skills-e2e-test-suite-init
- Seller: https://agentstack.voostack.com/s/agentmantis
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
