AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Webapp Testing

skill-jnzader-repoforge-webapp-testing · by JNZader

>

No reviews yet
0 installs
31 views
0.0% view→install

Install

$ agentstack add skill-jnzader-repoforge-webapp-testing

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jnzader-repoforge-webapp-testing)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Webapp Testing? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Purpose

Patterns for browser-based UI verification using Playwright. Reliable, maintainable, fast E2E tests.


Selector Priority

| Priority | Selector | Example | Why | |----------|----------|---------|-----| | 1 | Role | getByRole('button', { name: 'Submit' }) | Accessible, semantic | | 2 | Label | getByLabel('Email') | Accessible, user-facing | | 3 | Test ID | getByTestId('submit-btn') | Stable, explicit | | 4 | Text | getByText('Sign in') | Readable but fragile | | 5 | CSS | page.locator('.btn-primary') | Last resort |

NEVER: XPath, auto-generated IDs, DOM structure selectors.


Page Object Model

export class LoginPage {
  constructor(private page: Page) {}
  get emailInput() { return this.page.getByLabel('Email'); }
  get passwordInput() { return this.page.getByLabel('Password'); }
  get submitButton() { return this.page.getByRole('button', { name: 'Sign in' }); }

  async login(email: string, password: string) {
    await this.emailInput.fill(email);
    await this.passwordInput.fill(password);
    await this.submitButton.click();
  }
}

Visual Regression

test('dashboard renders correctly', async ({ page }) => {
  await page.goto('/dashboard');
  await page.waitForLoadState('networkidle');
  await expect(page).toHaveScreenshot('dashboard.png', { maxDiffPixelRatio: 0.01 });
});

Network Interception

test('handles API errors', async ({ page }) => {
  await page.route('**/api/users', route =>
    route.fulfill({ status: 500, body: 'Server Error' })
  );
  await page.goto('/users');
  await expect(page.getByText('Something went wrong')).toBeVisible();
});

Anti-Flakiness

  1. Wait for state, not time — never page.waitForTimeout()
  2. Isolate tests — fresh context per test
  3. Web-first assertions — expect(locator).toBeVisible() auto-retries
  4. Mock external APIs
  5. CI retries: retries: 2 in config

Critical Rules

  1. NEVER use page.waitForTimeout() — wait for specific conditions
  2. ALWAYS use Page Object Model for pages with 3+ interactions
  3. Selectors MUST follow priority: role > label > testid > text > CSS
  4. Visual regression MUST set maxDiffPixelRatio
  5. E2E tests MUST NOT depend on seed data
  6. ALWAYS use --trace on-first-retry in CI

Source & license

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

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

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.