e2e-tests

Write and debug Playwright end-to-end tests for full-stack user journeys.

49|11|Updated Jul 31, 2026
One-click install
npx skills add https://github.com/vstorm-co/agenticos --skill e2e-tests-vstorm-co
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: e2e-tests
Source: https://github.com/vstorm-co/agenticos/tree/main/.claude/skills/e2e-tests
Command: npx skills add https://github.com/vstorm-co/agenticos --skill e2e-tests-vstorm-co

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? End-to-end specs in this product can pass against a dead backend because every page renders its empty state when a query fails, so a spec asserting on page chrome asserts on nothing. This Skill encodes the rules, fixtures, and helpers that keep Playwright specs honest: asserting on seeded data, surviving dialog races, and proving a new spec can actually fail. ## Core Features & Use Cases - Seeded-fixture discipline: Assert against rows created by e2e/seed.setup.ts and named constants in e2e/helpers.ts, never literals or empty-state chrome. - Race-safe writes: Use submitDialog and the nowThere/nowListed polling primitives to handle Radix dialog accessibility traps and post-write read delays instead of flaky fixed timeouts. - Failure safety net: Import test/expect from ./fixtures so any 5xx from /api/* fails the test, and read the fixture-reporter banner before blaming product code. - Use Case: When make test-e2e fails or a new journey spec (sign in, build an agent, publish, run, approve) is needed, follow these rules to write a spec that fails against a dead backend before trusting it. ## Quick Start Ask the AI to write a new Playwright e2e spec for a full-stack journey using the seeded fixtures and helpers from frontend/e2e.

Frequently Asked Questions about e2e-tests

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a Playwright e2e test that actually fails when the backend is down?▼

Assert on a seeded row such as a name, slug, or count rather than page chrome, because every page renders its empty state when a query fails. Then point BACKEND_URL at a dead port and confirm the spec goes red before trusting it.

Why does my Playwright test flake after submitting a dialog?▼

An open Radix dialog removes the rest of the page from the accessibility tree, so getByRole queries resolve to nothing. Use submitDialog from e2e/helpers.ts, which waits on the write response and the dialog closing instead of a fixed timeout.

How do I add a new fixture for Playwright e2e tests?▼

Add the fixture to e2e/seed.setup.ts so it is created through the UI, and export its name as a constant from e2e/helpers.ts. Assert against those constants in specs, and never create data inside a spec unless creating it is the behavior under test.

Why does a 2xx response not guarantee my write is readable in e2e tests?▼

The backend commits inside a FastAPI Depends-with-yield exit code that runs after the response is sent, so a single read right after a write can miss the row. Poll with the nowThere helper instead of performing one read.

Why do upload e2e specs return 500 on a fresh environment?▼

The database image must be pgvector/pgvector:pg16, not stock Postgres. The RAG store issues CREATE EXTENSION IF NOT EXISTS vector on first write, and stock Postgres answers that the vector extension is not available.

When should I not use an end-to-end test?▼

E2E is only for journeys crossing the whole system like sign in, build, publish, run, and approve. A permission hiding a button belongs in a frontend integration test with a mocked API, a service rule in a unit test, and a constraint in a backend integration test.