Test the flow at the cheapest useful layer
Place tests for a full-stack flow across unit, integration, and end-to-end layers based on failure mode.
The password-reset flow is covered mostly by slow end-to-end tests, but API edge cases still escape. Test pyramid: broad fast tests at the base, focused boundary tests in the middle, and a few high-value end-to-end tests at the top. Using the browser to test every branch makes feedback slow and flaky, while still missing backend-only correctness rules. Name the failure mode Expired token accepted, token reused, email link malformed, redirect broken, user cannot complete reset. A test layer should be chosen for the specific failure, not for the whole feature label. Push pure logic down Test token expiry, password rules,…
Sign up free — one personalized lesson every day, matched to your role and goals.
Already have an account? Sign in