FR-01.02 — Account Verification
Trigger: The user submits the verification code received during registration.
System shall:
- Provide a verification mechanism to the registered user.
- Match the submitted code to the correct registration attempt.
- Validate that the code has not expired.
- Validate that the code has not already been used.
- Mark the user's email as verified when the code is correct.
- Prevent successful verification mechanisms from being reused.
- Update the account verification state after successful verification.
- Allow the user to proceed to onboarding.
State: PENDING_VERIFICATION → EMAIL_VERIFIED
Acceptance Criteria:
- PASS: A valid verification attempt changes the account to VERIFIED.
- PASS: An expired or invalid verification attempt is rejected.
- PASS: A successfully used code cannot be reused.
- PASS: Successfully verified users can proceed to onboarding.
- FAIL: An unverified account receives access that requires verification.
- FAIL: An incorrect or expired code verifies the account.