VALIDATION LAB•PRACTICE AREA
Core UI Testing · Practice Area
Inputs · Buttons · Forms · Validation
Every card is a focused interaction surface with stable data-testid selectors, a live widget, and a copy-pasteable Playwright spec. Designed so junior QA can build muscle memory and seniors can audit habits.
Form Lab
Register Form
Validate a production-style account registration form with names, username, email, password confirmation, country selection, and required terms consent.
Open module →
Login Form
Exercise valid login, invalid password, empty fields, remember-me state, and locked account messaging.
Open module →
Contact Form
Validate a support/contact request with required identity fields, message length, optional attachment upload, and a success toast.
Open module →
Address Form
Validate shipping/billing address fields including postal code format, numeric phone number, and required country.
Open module →
Payment Form
Test a payment form with clearly labeled test card data only, covering success, declined card, authentication-required, expiry, CVV, ZIP, and save-card behavior.
Open module →
Checkout Form
Exercise a checkout flow spanning customer info, shipping address, payment method, review order, terms acceptance, and submit order.
Open module →
Profile Update Form
Validate profile updates with display name, email, phone, language, timezone, avatar upload, duplicate email, invalid phone, and invalid file type scenarios.
Open module →
Multi-Step Form
Test a five-step wizard with personal info, address, preferences, review, submit, Next/Back controls, step validation, and progress indicator.
Open module →
Validation Errors
Run dedicated negative testing scenarios for empty submit, invalid email, short password, mismatched passwords, invalid phone, expired card, invalid CVV, unchecked terms, and server error simulation.
Open module →
Forms
Inputs
Validate an email + password login form, surface a red error on invalid email, and assert the success state once both fields satisfy their rules.
Open module →
Buttons
Exercise pointer-first button semantics through clear, user-facing feedback messages: primary click, double-click isolation, secondary-click context menu, hover-then-confirm, disabled guards, and loading/busy paths.
Open module →
Keyboard Keys
Test how real users type, navigate, edit and break modern forms.
Open module →
Selection
Checkboxes
Toggle individual and bulk checkboxes; verify indeterminate parent state when only some children are selected.
Open module →
Radio Buttons
Switch between radio options and validate that exactly one option is selected at any time.
Open module →
Single Select
Select a value from a native dropdown and assert the downstream summary updates.
Open module →
Multi Select
Select several skills, verify chips render in selection order, and assert removal via chip × button.
Open module →
Slider Interaction Lab
Exercise slider changes through drag, track click, keyboard arrows, and direct numeric input while comparing visual, displayed, and submitted values.
Open module →
Searchable Select
Type-to-filter a country list, navigate suggestions with the keyboard, and pick by Enter.
Open module →
Date & Files
Date Picker
Set a time with the clock input, open the calendar, pick a day, and verify the readonly field matches `HH:MM - DD/MM/YYYY` (local calendar parts, stable for automation).
Open module →
Date Range Picker
Set start/end times, pick day span in two taps, and validate the pill shows `HH:MM - DD/MM/YYYY → …` including auto-swap.
Open module →
Image Handling Lab
Validate working, broken, slow, unauthorized, and corrupted image states with fallbacks, loading indicators, retry actions, and layout stability checks.
Open module →
File Upload
Upload an image, verify size + type validation, and reject files that exceed the budget.
Open module →
File Download
Download TXT, PDF, and CSV files and assert that the browser download event, suggested filename, and saved artifact are correct.
Open module →
PDF Download
Validate a dedicated sample PDF export: the download starts, the filename ends with .pdf, and the saved file is not empty.
Open module →
Generate Text File
Type custom text into a textarea, generate a .txt file, download it, and validate both filename and downloaded content.
Open module →
Tables
Static Table
Practice deterministic table assertions against a fixed Name, Email, Role, Status grid and click an action button inside a specific row.
Open module →
Dynamic Table
Search generated users, sort by name, filter active users, paginate, validate row counts, and click edit/delete for a specific row.
Open module →
Overlays
JavaScript Alerts
Handle native alert, confirm, and prompt dialogs with Playwright dialog listeners, accept/dismiss flows, and message assertions.
Open module →
Notifications
Trigger success, info, warning, and error toasts; assert visibility/text; verify auto-dismiss and manual close behavior.
Open module →
Async
Loader / Spinner
Trigger an async fetch, verify the spinner is visible during load, and confirm it disappears once the data arrives.
Open module →
Infinite Scroll
Scroll a virtualized list until the target item appears, asserting the loader disappears between batches.
Open module →
Navigation
Tabs
Switch between three tabs, verify only the active panel renders, and confirm the URL hash updates.
Open module →
Accordions
Expand a section, verify only one section is open at a time, and confirm the icon rotates.
Open module →
New Tab / Window
Click a link that opens a new tab and assert against the content of the popup page.
Open module →