# Nathanchase Claude Code Starter E2e Tests

> E2E Test Creation

- Skill: `tomevault-io/nathanchase-claude-code-starter-e2e-tests` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/nathanchase-claude-code-starter-e2e-tests`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/nathanchase-claude-code-starter-e2e-tests/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/nathanchase-claude-code-starter-e2e-tests

---


# E2E Test Creation

Create Playwright E2E tests for user workflows.

## Usage

- `/testing:e2e-tests [feature]` - Create E2E tests for feature
- `/testing:e2e-tests status` - Check E2E coverage status

## Test Structure

```typescript
import { expect, test } from '@playwright/test';

test.describe('Feature Name', () => {
  test.beforeEach(async ({ page }) => {
    test.setTimeout(120000);
    // Setup: login, navigate, etc.
  });

  test('should perform action', async ({ page }) => {
    // Arrange
    await page.goto('/feature');

    // Act
    await page.click('[data-testid="button"]');

    // Assert
    await expect(page.locator('.result')).toBeVisible();
  });
});
```

## Test Categories

```
tests/e2e/
├── smoke/      # Critical health checks
├── auth/       # Authentication flows
├── core/       # Core feature workflows
└── utils/      # Helper utilities
```

## Server Management

```bash
# Start server
nohup <dev-command> > dev.log 2>&1 &

# Verify ready
curl -s http://localhost:<port> | head -1

# Run tests
<playwright-runner> tests/e2e/[category]/[test]

# CRITICAL: Stop server after
pkill -f "<dev-process>"
```

## Priority Tags

- `@critical` - Must pass for release
- `@high` - Important functionality
- `@medium` - Secondary features
- `@low` - Nice to have

## Best Practices

- E2E tests should only cover what unit tests cannot: full user journeys, real API integration, auth flows, navigation
- Use structural assertions over content assertions to prevent flaky tests
- Use `storageState` for auth tests (login once, reuse) instead of per-test UI login
- Keep timeouts reasonable but generous for CI

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/nathanchase) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-16 -->

