| at | step | ms |
| +8.68s | a password reset works through the email -- exactly once | 8544.0 |
| +7.71s | wait for the email | 6976.3 |
| +8.06s | choose a new password | 235.1 |
| +8.33s | sign in with the new password | 270.8 |
| +8.52s | follow the same link again | 132.2 |
| +0.39s | goto freight/login/ | 148.7 |
| +0.56s | click #forgot-link | 159.4 |
| +0.6s | fill #forgot-login | 39.3 |
| +0.67s | click #forgot-btn | 70.1 |
| +0.73s | innerText #forgot-ref | 60.0 |
| +0.77s | goto freight/mailbox/?to=courier@acme-freight.example | 38.1 |
| +7.71s | toBeVisible #mail-list a.mail-subject:has-text('ref 35DC8F') | 6931.8 |
| +7.79s | click #mail-list a.mail-subject:has-text('ref 35DC8F') | 77.6 |
| +7.82s | toBeVisible #mail-body a[href*='/login/reset/'] | 30.8 |
| +7.87s | click #mail-body a[href*='/login/reset/'] | 47.1 |
| +7.9s | fill #new-password | 33.4 |
| +7.92s | fill #confirm-password | 13.8 |
| +8.03s | click #reset-btn | 104.4 |
| +8.06s | toBeVisible #login-btn | 28.9 |
| +8.08s | fill #username | 20.6 |
| +8.09s | fill #password | 14.1 |
| +8.23s | click #login-btn | 132.9 |
| +8.33s | toBeVisible #signed-in-user | 98.1 |
| +8.38s | click #sign-out | 54.3 |
| +8.42s | goto http://127.0.0.1:8000/demo/freight/mailbox/3/ | 33.9 |
| +8.49s | click #mail-body a[href*='/login/reset/'] | 69.2 |
| +8.51s | toBeVisible #reset-invalid, #reset-form | 18.7 |
| +8.52s | toHaveCount #reset-form | 5.4 |
Video and Playwright trace stay on the hub:
results/DEMO-T16/20260925-002240-r420/ — open the run page for the replay.