Login, token refresh, and everything that must fail: expired tokens, wrong permissions, malicious credentials — auth tested as behavior.
Overview
Auth code is tested backwards everywhere: the login-works test exists, the seventeen ways auth must FAIL don't. This setup generates the auth test suite with security as a first-class coverage area: authentication failures (missing, expired, malformed credentials — each its own test), permission boundaries returning the right 403s, malicious input through every credential field, and access to other users' resources by ID rejected — alongside the API failure scenarios: 401 vs 403 distinguished, idempotent refresh behavior, and error shapes that don't leak what exists.
Workflow
1
Count the failure tests
A healthy auth suite has more failure tests than success tests — the contract is built to produce that ratio.
2
Test expiry as a moment
The token that expires BETWEEN two requests is the scenario that separates tested auth from lucky auth.
3
Verify the cross-user wall
Authenticated-but-wrong-user requests against every resource type — the test that catches IDOR before users do.
Why This Works
Failure-first framing matches auth reality: success is one path, failure is the surface
The 401/403 separation tests the distinction attackers probe first
Cross-user scenarios catch the authorization bugs authentication tests can't see
Best for
Auth endpoints, middleware, and guards
Systems where a 403 returned as 404 (or worse, 200) is an incident
Token lifecycles with refresh, expiry, and revocation
Not for
Reviewing auth code for vulnerabilities — that's the Code Review Prompt Generator's security focus; review finds, tests verify
Pen-testing — these tests verify specified behavior, not undiscovered attack surface
Use cases
Testing login and token-refresh endpoints before release
Covering expired-token behavior on every protected route
Verifying users can't reach each other's resources by ID
Tip: Save time by exploring related resources and tools that integrate with this workflow.
Found a bug, have a suggestion, or want to report something confusing? Send a short note.
Cookie preferences
NewPrompt uses optional Google Analytics cookies to understand site usage and improve the tools.
The site works normally if you decline analytics cookies.
Read more in our Cookie Policy.