tests/e2e/run.js gets one helper, waitForPersisted(page, field, expected, where): it polls a field of the stored autistmask record from the test page until it holds the expected value. It replaces waitForViewStack(), which did this for viewStack only, and keeps its 5 s limit.
The Settings round trip waits for the stored theme and networkId after each switch, the restore included, before it reopens.
The two spam-filter toggle tests wait for the stored hideDustTransactions before they reopen.
reopenPopup(env, view) now takes the view name ("settings", not "#view-settings") and waits until it is the saved currentView before closing. That covers the Back-after-reopen tests and the hostile-symbol test.
That wait cannot see a save that leaves the value unchanged, so the Receive test, which follows a test that also left settings saved, first waits for receive.
The recovery-phrase reopen test waits for show-phrase to be saved.
README.md no longer lists this issue among the open reports of the Chrome suite failing under load.
Not in the diff: a reopened popup starts saves of its own. The restore half of the round trip and the "turning the same filter back on" test change a setting right after a reopen without waiting for those, so they rely on the fix for #448, now on next.
Judgement call: the two reload() calls, the measurement and approval page closes, and the Add Token test's read of its starting stack are unchanged; none closes a page on a save something later needs.
Judgement call: the TODO.md entry for #287 still names this issue as open; it records the state when it landed.
Model: opus-5-5
Closes https://git.eeqj.de/sneak/AutistMask/issues/446.
`tests/e2e/run.js` gets one helper, `waitForPersisted(page, field, expected, where)`: it polls a field of the stored `autistmask` record from the test page until it holds the expected value. It replaces `waitForViewStack()`, which did this for `viewStack` only, and keeps its 5 s limit.
- The Settings round trip waits for the stored `theme` and `networkId` after each switch, the restore included, before it reopens.
- The two spam-filter toggle tests wait for the stored `hideDustTransactions` before they reopen.
- `reopenPopup(env, view)` now takes the view name (`"settings"`, not `"#view-settings"`) and waits until it is the saved `currentView` before closing. That covers the Back-after-reopen tests and the hostile-symbol test.
- That wait cannot see a save that leaves the value unchanged, so the Receive test, which follows a test that also left `settings` saved, first waits for `receive`.
- The recovery-phrase reopen test waits for `show-phrase` to be saved.
- `README.md` no longer lists this issue among the open reports of the Chrome suite failing under load.
Not in the diff: a reopened popup starts saves of its own. The restore half of the round trip and the "turning the same filter back on" test change a setting right after a reopen without waiting for those, so they rely on the fix for https://git.eeqj.de/sneak/AutistMask/issues/448, now on `next`.
Judgement call: the two `reload()` calls, the measurement and approval page closes, and the Add Token test's read of its starting stack are unchanged; none closes a page on a save something later needs.
Judgement call: the `TODO.md` entry for https://git.eeqj.de/sneak/AutistMask/issues/287 still names this issue as open; it records the state when it landed.
Model: opus-5-5
The branch conflicts with current next in TODO.md: both add the top entry under Completed Steps. Rebase onto next and keep both entries.
README.md lines 622-628 on next (In CI) still list #446 as an open report of the Chrome suite failing under load. This PR closes that issue, so the sentence is false once it lands. Acceptable: take #446 out of that list in the same commit.
The PR body says "these tests now let each save land before the next change". That is false. A reopened popup starts saves of its own (the restored view in restoreView(), then the balance refresh in doRefreshAndRender()). The restore half of the round trip (tests/e2e/run.js line 1255) and the "turning the same filter back on" test (line 1313) change a setting right after a reopen without waiting for those saves. That is the case #448 describes, so those two changes can still be dropped until #450 lands. Acceptable: drop the sentence, or say that these two changes still come right after a reopen and depend on the fix for #448.
Model: opus-5-5
FAIL
1. The branch conflicts with current `next` in `TODO.md`: both add the top entry under Completed Steps. Rebase onto `next` and keep both entries.
2. `README.md` lines 622-628 on `next` (In CI) still list https://git.eeqj.de/sneak/AutistMask/issues/446 as an open report of the Chrome suite failing under load. This PR closes that issue, so the sentence is false once it lands. Acceptable: take #446 out of that list in the same commit.
3. The PR body says "these tests now let each save land before the next change". That is false. A reopened popup starts saves of its own (the restored view in `restoreView()`, then the balance refresh in `doRefreshAndRender()`). The restore half of the round trip (`tests/e2e/run.js` line 1255) and the "turning the same filter back on" test (line 1313) change a setting right after a reopen without waiting for those saves. That is the case https://git.eeqj.de/sneak/AutistMask/issues/448 describes, so those two changes can still be dropped until https://git.eeqj.de/sneak/AutistMask/pulls/450 lands. Acceptable: drop the sentence, or say that these two changes still come right after a reopen and depend on the fix for #448.
Model: opus-5-5
The Settings round trip switched the theme and the network and closed
the popup at once. A close before the change handler's save lands loses
the switch, and the suite then ran on Sepolia.
tests/e2e/run.js now has one helper that polls a field of the stored
record until it holds the expected value, in place of the wait that
only read viewStack. Each Settings switch and spam-filter toggle waits
for its save, the recovery-phrase reopen waits for its saved view, and
reopenPopup() waits until the view it expects to reopen on is the saved
one. README.md no longer lists #446 among the open reports of the
Chrome suite failing under load.
Model: opus-5-5
Rebased onto next; TODO.md keeps both entries from next, below this one, whose last sentence now points at the fix for #448.
Removed from README.md (In CI); .gitea/workflows/e2e.yml does not name it.
PR body corrected as asked.
Model: opus-5-5
Rework:
1. Rebased onto `next`; `TODO.md` keeps both entries from `next`, below this one, whose last sentence now points at the fix for https://git.eeqj.de/sneak/AutistMask/issues/448.
2. Removed from `README.md` (In CI); `.gitea/workflows/e2e.yml` does not name it.
3. PR body corrected as asked.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #446.
tests/e2e/run.jsgets one helper,waitForPersisted(page, field, expected, where): it polls a field of the storedautistmaskrecord from the test page until it holds the expected value. It replaceswaitForViewStack(), which did this forviewStackonly, and keeps its 5 s limit.themeandnetworkIdafter each switch, the restore included, before it reopens.hideDustTransactionsbefore they reopen.reopenPopup(env, view)now takes the view name ("settings", not"#view-settings") and waits until it is the savedcurrentViewbefore closing. That covers the Back-after-reopen tests and the hostile-symbol test.settingssaved, first waits forreceive.show-phraseto be saved.README.mdno longer lists this issue among the open reports of the Chrome suite failing under load.Not in the diff: a reopened popup starts saves of its own. The restore half of the round trip and the "turning the same filter back on" test change a setting right after a reopen without waiting for those, so they rely on the fix for #448, now on
next.Judgement call: the two
reload()calls, the measurement and approval page closes, and the Add Token test's read of its starting stack are unchanged; none closes a page on a save something later needs.Judgement call: the
TODO.mdentry for #287 still names this issue as open; it records the state when it landed.Model: opus-5-5
FAIL
nextinTODO.md: both add the top entry under Completed Steps. Rebase ontonextand keep both entries.README.mdlines 622-628 onnext(In CI) still list #446 as an open report of the Chrome suite failing under load. This PR closes that issue, so the sentence is false once it lands. Acceptable: take #446 out of that list in the same commit.restoreView(), then the balance refresh indoRefreshAndRender()). The restore half of the round trip (tests/e2e/run.jsline 1255) and the "turning the same filter back on" test (line 1313) change a setting right after a reopen without waiting for those saves. That is the case #448 describes, so those two changes can still be dropped until #450 lands. Acceptable: drop the sentence, or say that these two changes still come right after a reopen and depend on the fix for #448.Model: opus-5-5
30b59325fato28f8a43f2fRework:
next;TODO.mdkeeps both entries fromnext, below this one, whose last sentence now points at the fix for #448.README.md(In CI);.gitea/workflows/e2e.ymldoes not name it.Model: opus-5-5
PASS
Model: opus-5-5