Step 1PASSnavigate
Open login page
Expected: Login form renders
Actual: Login form rendered with email + password fields
Step 2PASStype
Enter email: dev@acme.co
Expected: Email field populated
Actual: Email field shows dev@acme.co
Step 3PASStype
Enter password
Expected: Password field populated
Actual: Password field masked
Step 4PASSclick
Click "Sign in" button
Expected: Login succeeds or rate limit triggers
Actual: Login succeeded, redirected to /dashboard
Step 5PASSrepeat
Rapid-fire 10 login attempts in 60s
Expected: Rate limiter returns 429 after 10th request
Actual: 429 Too Many Requests returned on 11th attempt
Step 6PASSverify
Check SQL query parameterization in /api/users
Expected: No string interpolation in SQL queries
Actual: All queries use $1, $2 parameterized placeholders
Step 7PASSverify
Check unused variable removal
Expected: prevStep variable removed from onboarding/flow.tsx
Actual: Variable removed, no references remain