| at | step | ms |
| +8.44s | a password reset works through the email -- exactly once | 8316.0 |
| +7.43s | wait for the email | 6946.1 |
| +7.74s | choose a new password | 220.9 |
| +8.03s | sign in with the new password | 287.6 |
| +8.26s | follow the same link again | 163.5 |
| +0.25s | goto freight/login/ | 88.3 |
| +0.35s | click #forgot-link | 92.2 |
| +0.38s | fill #forgot-login | 31.3 |
| +0.45s | click #forgot-btn | 70.6 |
| +0.48s | innerText #forgot-ref | 28.9 |
| +0.52s | goto freight/mailbox/?to=courier@acme-freight.example | 33.2 |
| +7.43s | toBeVisible #mail-list a.mail-subject:has-text('ref 5536CC') | 6908.2 |
| +7.49s | click #mail-list a.mail-subject:has-text('ref 5536CC') | 58.9 |
| +7.52s | toBeVisible #mail-body a[href*='/login/reset/'] | 27.0 |
| +7.57s | click #mail-body a[href*='/login/reset/'] | 45.6 |
| +7.59s | fill #new-password | 27.9 |
| +7.61s | fill #confirm-password | 14.3 |
| +7.71s | click #reset-btn | 99.9 |
| +7.74s | toBeVisible #login-btn | 25.3 |
| +7.75s | fill #username | 12.5 |
| +7.78s | fill #password | 27.3 |
| +7.95s | click #login-btn | 162.3 |
| +8.03s | toBeVisible #signed-in-user | 80.4 |
| +8.1s | click #sign-out | 68.7 |
| +8.13s | goto http://127.0.0.1:8000/demo/freight/mailbox/6/ | 27.4 |
| +8.23s | click #mail-body a[href*='/login/reset/'] | 105.4 |
| +8.25s | toBeVisible #reset-invalid, #reset-form | 21.4 |
| +8.26s | toHaveCount #reset-form | 4.9 |
Video and Playwright trace stay on the hub:
results/DEMO-T16/20260925-002957-r468/ — open the run page for the replay.