Skip to main content

DevOps & Security

E2E Scenario Generator

Converts a user story or product requirement into a complete Playwright, Cypress, or Selenium E2E scenario with setup, assertions, and failure diagnostics. Useful for automating the most time-consuming part of QA. Engineers shipping features with meaningful user flows, QA engineers building the regression suite, tech leads enforcing E2E coverage on critical paths. The cost is not the runtime — E2E frameworks have gotten fast. The cost is the first draft: every scenario needs login handling, test-data setup, locators that will not break in two weeks, and meaningful failure messages. Teams that skip E2E ship bugs that unit tests cannot catch (render regressions, broken navigation, auth edge cases). A generator that takes a user story and produces a complete, maintainable E2E scenario turns "we should write an E2E" into "we write E2Es as part of the feature."

Nexus CertifiedClaude CodeCodexOpenClawGoogle Antigravity
testinge2eplaywrightcypressautomation

One-Time Purchase

$19.99

Sample Output
# E2E Scenario — User purchases a skill and downloads it

**Framework:** Playwright (TypeScript)
**Base URL:** `http://localhost:3000` (dev) / `https://clearpointnexus.com` (prod smoke)
**Auth pattern:** Clerk with storage-state reuse

<div data-callout="info" data-label="Summary">

Generated five scenarios covering the **happy path**, **two abandonment branches**, and **two failure modes** of the skill-purchase flow. Locators are anchored to `data-testid` attributes (project convention); waits are explicit (`expect().toHaveURL`, `expect().toBeVisible`) — no `page.waitForTimeout`. Auth uses a Clerk storage-state fixture reused across scenarios so tests start logged in.

</div>

<div data-stack data-stack-title="Files produced">
<div data-row data-value="5 scenarios">`e2e/skill-purchase.spec.ts` — happy path + 4 branches</div>
<div data-row data-value="fixture">`e2e/fixtures/authenticated-user.ts` — Clerk storage-state loader</div>
<div data-row data-value="helper">`e2e/helpers/stripe-test-card.ts` — fills the Stripe iframe with 4242…</div>
</div>

---

## Scenarios by priority

| Scenario | Priority | Notes |
|---|---|---|
| Happy path: purchase `research-core` bundle, receive email, download zip | <span data-pill="critical">P0</span> | Drives the highest-value flow end-to-end |
| Stripe declined card (`4000 0000 0000 9995`) → user sees error, can retry | <span data-pill="critical">P0</span> | Most common failure mode |
| Abandoned at checkout (user closes tab before payment) | <span data-pill="caution">P1</span> | Confirms no entitlement is created |
| HMAC download link expired (24h+) | <span data-pill="caution">P1</span> | Confirms 410 + helpful UI message |
| 3DS challenge card (`4000 0027 6000 3184`) → user completes challenge → succeeds | <span data-pill="info">P2</span> | Locale-conditional; runs on prod smoke only |

---

## Happy-path scenario (excerpt)

```typescript
// e2e/skill-purchase.spec.ts
import { test, expect } from '@playwright/test';
import { useAuthenticatedUser } from './fixtures/authenticated-user';
import { fillStripeTestCard } from './helpers/stripe-test-card';

test.describe('Skill purchase', () => {
  useAuthenticatedUser();

  test('P0 — buys research-core bundle and downloads zip', async ({ page, downloadDir }) => {
    await page.goto('/bundles/research-core');

    // Anchor on data-testid, not text — text is copy-edited often
    await page.getByTestId('buy-now-button').click();
    await expect(page).toHaveURL(/checkout\.stripe\.com/);

    await fillStripeTestCard(page, { number: '4242 4242 4242 4242' });
    await page.getByTestId('stripe-pay-button').click();

    // Stripe redirects back to /checkout/success
    await expect(page).toHaveURL(/\/checkout\/success/, { timeout: 30_000 });
    await expect(page.getByTestId('purchase-confirmed-banner')).toBeVisible();

    // Account page should now list the bundle
    await page.getByTestId('nav-account').click();
    await expect(page.getByTestId('purchase-row-research-core')).toBeVisible();

    // Download button triggers a real download
    const downloadPromise = page.waitForEvent('download');
    await page.getByTestId('download-button-research-core').click();
    const download = await downloadPromise;

    expect(download.suggestedFilename()).toMatch(/^research-core.*\.zip$/);
    await download.saveAs(`${downloadDir}/research-core.zip`);
  });
});
```

<div data-callout="caution" data-label="Edge case — Stripe iframe timing">

Playwright's `frameLocator` is reliable, **but the Stripe Checkout iframe takes 600–1200ms to mount fully**. The helper `fillStripeTestCard` waits for the cardnumber input via `await expect(frame.getByLabel('Card number')).toBeVisible({ timeout: 10_000 })` before typing. Skip this and ~20% of CI runs flake on the first run after a cold container start.

</div>

<div data-callout="caution" data-label="Edge case — HMAC token expiry test">

The expired-link scenario can't generate an expired token via the UI without a 24-hour wait. The scenario calls a test-only endpoint `POST /api/test/expire-download-token` that mutates the issued-at timestamp. **This endpoint must be gated behind `NODE_ENV !== 'production'`** — confirm before running e2e against production.

</div>

<div data-callout="info" data-label="What the suite intentionally doesn't cover">

Refunds, plan upgrades from single → bundle, and watermark verification are **not** in this scenario set — they each warrant their own file. The generator can produce those on request; treat this set as the critical-path baseline.

</div>

*Generated by the ClearPoint Nexus E2E Scenario Generator skill. Re-run the generator after material UI changes; locators anchored on `data-testid` survive copy edits but not testid renames.*

This sample illustrates the skill's output format. Names, metrics, and operational details are illustrative unless the artifact explicitly analyzes public information.

View full sample →

All sales final. No refunds on digital products.

Includes support for Claude Code, Codex, OpenClaw, and Google Antigravity in the same license.

Also in Testing & QA

Bundle price: $55. Compare this skill with the full workflow bundle or Pro access.

Best for

Engineers and QA leads building Playwright, Cypress, or Selenium suites for critical user flows — checkout, sign-up, billing portal — where the bottleneck is writing the first draft, not running the tests. Most useful for teams that have decided E2E coverage matters but keep losing the scenario-writing battle to feature work.

Not ideal for

Visual regression testing where the assertion is pixel-level and a generated scenario adds little — that’s Percy or Chromatic territory. Also a poor fit for highly stateful flows (multi-step bank transfers, complex onboarding) where the generator’s setup assumptions break down without significant manual tailoring.

Included in this purchase

  • Claude Code, Codex, OpenClaw, and Google Antigravity skill files.
  • Setup guidance for the right adapter in your workspace.
  • One-time license for the purchased skill version.

Setup

Plan for a short setup in the repository or workspace where the skill will run. Some coding familiarity helps for implementation-heavy outputs.

Claude CodeCodexOpenClawGoogle Antigravity

Related Skills

Incident Response
Outage Response Playbook
Generates structured, role-clear incident response playbooks for specific failure scenarios. Covers detection through resolution and post-mortem — ready to use when an incident actually happens.
Claude CodeCodexOpenClawGoogle Antigravity
outage-responsereliabilityrunbooks

$19.99

One-time license

View Skill
Incident Response
Incident Postmortem Writer
Generates a structured blameless postmortem from incident timelines, alerts, and deploy logs with root cause analysis, impact assessment, and owned action items. Useful for producing first-draft postmortems under operational pressure.
Claude CodeCodexOpenClawGoogle Antigravity
postmortemsincident-responseoperations

$19.99

One-time license

View Skill
Security Scanning
OWASP Top 10 Scanner
Scans code for OWASP Top 10 vulnerability patterns including injection, XSS, IDOR, and insecure deserialization with severity ratings and remediation snippets. Useful for pre-commit security checks and enterprise compliance.
Claude CodeCodexOpenClawGoogle Antigravity
securityowaspvulnerabilities

$19.99

One-time license

View Skill

Future Updates

This purchase includes the current version of the skill. If you want future adapter updates — meaning compatibility and packaging updates as supported platforms evolve — plus new catalog additions included automatically, upgrade to Pro.

Upgrade to Pro