mcpField
F
form-testing

form-testing

github.com/spencerpaulyTesting & quality868455 installsUpdated 13w ago
Repository

About form-testing

A Cursor skill for systematically testing application forms through its built-in browser. It guides testers through form discovery, validation checks, edge cases, and reporting.

Key features

  1. 01Discover forms through accessibility snapshots
  2. 02Test empty, invalid, and valid submissions
  3. 03Check double submits and long inputs
  4. 04Verify special-character handling and tab order
  5. 05Report results and investigate failures

Use cases

  1. 01Auditing validation across login and settings forms
  2. 02Checking checkout forms with representative data
  3. 03Finding browser or API errors during form submissions

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill form-testing

After installing, type/form-testingin Claude Code to confirm it loaded.

Details

From the project README

Form Testing

Systematically test every form in the app using Cursor's built-in browser.

Workflow

1. Find All Forms

Use browser_snapshot to get the accessibility tree. Look for form elements, or groups of input, select, textarea elements.

Navigate through the app's main pages to discover all forms:

  • Login / signup pages
  • Settings / profile pages
  • Search bars
  • Contact / feedback forms
  • Checkout flows
  • Modals with inputs
2. Test Each Form

For each form, run three test passes:

Pass 1: Empty submission

  • Submit the form with all fields empty
  • Verify validation errors appear for required fields
  • Check that no server error occurs (should be client-side validation)

Pass 2: Invalid data

  • Email fields: enter notanemail
  • Password fields: enter a (too short)
  • Number fields: enter abc
  • Phone fields: enter 12345
  • URL fields: enter not-a-url
  • Check that appropriate error messages appear

Pass 3: Valid data

  • Fill every field with realistic test data using browser_fill or browser_fill_form
  • Submit the form
  • Verify success state (redirect, toast, confirmation message)
  • Check browser_console_messages for errors
  • Check browser_network_requests for failed API calls
3. Check Edge Cases
  • Double submission: Click submit twice quickly — should be prevented
  • Long input: Paste a very long string (1000+ chars) — should be truncated or rejected
  • Special characters: Enter <script>alert('xss')</script> — should be escaped
  • Tab order: Use browser_press with Tab to verify focus moves logically through fields
4. Report
Form Test Results:
  Login form (/login):
    Empty submit: PASS — shows "Email required", "Password required"
    Invalid email: PASS — shows "Invalid email"
    Valid submit: PASS — redirects to /dashboard
    XSS check: PASS — input escaped

  Settings form (/settings):
    Empty submit: FAIL — submits without validation, returns 500
    Valid submit: PASS — shows "Settings saved" toast

Fix any failures found.

Comments

Markdown supported