mcpField
F
form-testing

form-testing

github.com/revitalb-portTesting & quality055 installsUpdated 10w ago
Repository

About form-testing

A skill for systematically testing an application's forms with Cursor's built-in browser. It covers form discovery, validation, successful submissions, and edge cases, then organizes findings into a report.

Key features

  1. 01Discover forms across app pages
  2. 02Test empty, invalid, and valid submissions
  3. 03Check double submits and long inputs
  4. 04Review tab order, console, and network errors
  5. 05Report failures for follow-up

Use cases

  1. 01Testing login and signup validation
  2. 02Checking settings and checkout forms
  3. 03Finding form behavior and accessibility issues

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/revitalb-port/skills-registry-demo --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