affaan-m avatar

E2e Testing

This is a solid Playwright reference covering the practical stuff you actually need: Page Object Model setup, config for multi-browser testing, and real patterns for handling flaky tests (the repeat-each trick is worth knowing). The Web3 mocking example is genuinely helpful if you're testing wallet flows without burning real ETH. I like that it doesn't pretend flaky tests don't exist, it shows you how to quarantine them and debug with trace artifacts. The CI/CD GitHub Actions setup is copy-paste ready. Most valuable for teams moving past basic Playwright tutorials who need patterns for keeping tests stable as the suite grows.

skills.sh installs
6.4K
GitHub stars
300.3K
last updated
Aug 21, 2026

Install

$ npx -y skills add affaan-m/ecc --skill e2e-testing --agent claude-code

Installs into .claude/skills of the current project.

Files

E2E Testing Patterns

Comprehensive Playwright patterns for building stable, fast, and maintainable E2E test suites.

Test File Organization

tests/
├── e2e/
│   ├── auth/
│   │   ├── login.spec.ts
│   │   ├── logout.spec.ts
│   │   └── register.spec.ts
│   ├── features/
│   │   ├── browse.spec.ts
│   │   ├── search.spec.ts
│   │   └── create.spec.ts
│   └── api/
│       └── endpoints.spec.ts
├── fixtures/
│   ├── auth.ts
│   └── data.ts
└── playwright.config.ts

Page Object Model (POM)

import { Page, Locator } from '@playwright/test'

export class ItemsPage {
  readonly page: Page
  readonly searchInput: Locator
  readonly itemCards: Locator
  readonly createButton: Locator

  constructor(page: Page) {
    this.page = page
    this.searchInput = page.locator('[data-testid="search-input"]')
    this.itemCards = page.locator('[data-testid="item-card"]')
    this.createButton = page.locator('[data-testid="create-btn"]')
  }

  async goto() {
    await this.page.goto('/items')
    await this.page.waitForLoadState('networkidle')
  }

Sponsors

Details

Repository
github.com/affaan-m/ecc
Categories
Testing & QA, DevOps & CI/CD
First seen
Jul 14, 2026

More from affaan-m/ecc

All 263
1giuseppe-trisciuoglio avatarunit-test-service-layergiuseppe-trisciuoglio/developer-kitProvides patterns for unit testing service layer with Mockito. Creates isolated tests that mock repository calls, verify method invocations, test exception scen3.9Kskills.sh installs
2giuseppe-trisciuoglio avatarunit-test-controller-layergiuseppe-trisciuoglio/developer-kitProvides patterns for unit testing REST controllers using MockMvc and @WebMvcTest. Generates controller tests that validates request/response mapping, validatio3.9Kskills.sh installs
3giuseppe-trisciuoglio avatarunit-test-mapper-convertergiuseppe-trisciuoglio/developer-kitProvides patterns for unit testing mappers, converters, and bean mappings. Validates entity-to-DTO and model transformation logic in isolation. Generates execut3.9Kskills.sh installs
4giuseppe-trisciuoglio avatarunit-test-cachinggiuseppe-trisciuoglio/developer-kitProvides patterns for unit testing Spring Cache annotations (@Cacheable, @CachePut, @CacheEvict). Generates test code that mocks cache managers, verifies cache 3.8Kskills.sh installs
5bmad-labs avatartypescript-e2e-testingbmad-labs/skillsE2E and integration testing for TypeScript/NestJS projects using Jest, supertest, and real infrastructure via Docker (Kafka, PostgreSQL, MongoDB, Redis) with th2.3Kskills.sh installs
6web-infra-dev avatarvitest-midscene-e2eweb-infra-dev/midscene-skillsEnhances Vitest with Midscene for AI-powered UI testing across Web (Playwright), Android (ADB), and iOS (WDA). Scaffolds new projects, converts existing project2.1Kskills.sh installs