Cursor Skill

form-testing

Use Cursor's browser to fill and submit every form in the app with valid and invalid data, verifying validation, error states, and success flows.

LLM Mart · 0 points · 23 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download spencerpauly-awesome-cursor-skills-resources_form-testing-99cd265.zip · 1 KB
Part of spencerpauly/awesome-cursor-skills — 65 skills

Install

skills CLI npx skills add https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/form-testing
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install spencerpauly-awesome-cursor-skills@llmmart
Git git clone https://github.com/spencerpauly/awesome-cursor-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole spencerpauly/awesome-cursor-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

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.

Files (awesome-cursor-skills)
  • SKILL.md 2.2 KB
    ---
    name: form-testing
    description: Use Cursor's browser to fill and submit every form in the app with valid and invalid data, verifying validation, error states, and success flows.
    user-invocable: true
    ---
    
    # 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 (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related