| at | step | ms |
| +6.34s | a password reset works through the email -- exactly once | 6244.0 |
| +5.42s | wait for the email | 4945.2 |
| +5.73s | choose a new password | 235.7 |
| +6.0s | sign in with the new password | 267.2 |
| +6.19s | follow the same link again | 126.4 |
| +0.25s | goto freight/login/ | 93.9 |
| +0.35s | click #forgot-link | 89.9 |
| +0.38s | fill #forgot-login | 27.6 |
| +0.44s | click #forgot-btn | 65.3 |
| +0.47s | innerText #forgot-ref | 27.9 |
| +0.51s | goto freight/mailbox/?to=courier@acme-freight.example | 34.9 |
| +5.42s | toBeVisible #mail-list a.mail-subject:has-text('ref CD4821') | 4905.7 |
| +5.47s | click #mail-list a.mail-subject:has-text('ref CD4821') | 46.5 |
| +5.49s | toBeVisible #mail-body a[href*='/login/reset/'] | 22.4 |
| +5.55s | click #mail-body a[href*='/login/reset/'] | 56.4 |
| +5.59s | fill #new-password | 32.4 |
| +5.6s | fill #confirm-password | 9.5 |
| +5.7s | click #reset-btn | 101.6 |
| +5.73s | toBeVisible #login-btn | 27.6 |
| +5.75s | fill #username | 23.2 |
| +5.77s | fill #password | 15.6 |
| +5.9s | click #login-btn | 128.1 |
| +6.0s | toBeVisible #signed-in-user | 94.8 |
| +6.06s | click #sign-out | 67.6 |
| +6.1s | goto http://127.0.0.1:8000/demo/freight/mailbox/8/ | 30.3 |
| +6.17s | click #mail-body a[href*='/login/reset/'] | 68.0 |
| +6.19s | toBeVisible #reset-invalid, #reset-form | 17.9 |
| +6.19s | toHaveCount #reset-form | 5.0 |
Video and Playwright trace stay on the hub:
results/DEMO-T16/20260925-003035-r480/ — open the run page for the replay.