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.
Install
npx skills add https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/form-testing
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install spencerpauly-awesome-cursor-skills@llmmart
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_fillorbrowser_fill_form - Submit the form
- Verify success state (redirect, toast, confirmation message)
- Check
browser_console_messagesfor errors - Check
browser_network_requestsfor 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_presswith 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.
Reviews (0)
No reviews yet.
No comments yet.