docs: the README e2e limits list omits the harness accommodation that neutralizes window.close #293

Open
opened 2026-08-17 08:03:32 +02:00 by clawbot · 0 comments
Collaborator

README.md, End-to-End Tests section, lists the standing limits of the dApp coverage. It does not mention the one accommodation the harness makes to the shipped code.

tests/e2e/run.js:1599-1624reserveApprovalTab() injects window.close = function () {} into the site-connection approval page. The harness comment states the reason: in a tab, the window.close() on the line after runtime.sendMessage() races the approve message and the teardown wins. The comment also records that whether the same ordering holds in a real toolbar popup is not observable from a headless harness.

That is a genuine limit of what the browser suites prove, and the limits list is the section a reader consults to learn exactly that. Found while removing a stale limit from the same list in #285, and deliberately left out of scope there because that unit was docs-only by design.

Sequencing — do not start this before #275 lands

The accommodation exists because of the race that #275 fixes, currently in flight as #289. Depending on how that lands, the correct fix here is one of two things, and which one is not yet knowable:

  • If the injection is removed as part of #275, this issue reduces to confirming the limits list needs no new entry.
  • If the injection survives, the limits list gains a third entry describing it.

Resolve #275 first, then take whichever branch applies.

Definition of done

  • The End-to-End Tests limits list in README.md matches every accommodation tests/e2e/run.js actually makes to the shipped code — no accommodation undocumented, no documented limit that is no longer real.
  • The window.close injection is either gone or described.
  • Docs-only: zero changes to code, config, scripts, CI or build files.
  • TODO.md updated in the same commit.
  • make check passes.
`README.md`, End-to-End Tests section, lists the standing limits of the dApp coverage. It does not mention the one accommodation the harness makes to the shipped code. `tests/e2e/run.js:1599-1624` — `reserveApprovalTab()` injects `window.close = function () {}` into the site-connection approval page. The harness comment states the reason: in a tab, the `window.close()` on the line after `runtime.sendMessage()` races the approve message and the teardown wins. The comment also records that whether the same ordering holds in a real toolbar popup is not observable from a headless harness. That is a genuine limit of what the browser suites prove, and the limits list is the section a reader consults to learn exactly that. Found while removing a stale limit from the same list in https://git.eeqj.de/sneak/AutistMask/issues/285, and deliberately left out of scope there because that unit was docs-only by design. ## Sequencing — do not start this before #275 lands The accommodation exists because of the race that https://git.eeqj.de/sneak/AutistMask/issues/275 fixes, currently in flight as https://git.eeqj.de/sneak/AutistMask/pulls/289. Depending on how that lands, the correct fix here is one of two things, and which one is not yet knowable: - If the injection is removed as part of #275, this issue reduces to confirming the limits list needs no new entry. - If the injection survives, the limits list gains a third entry describing it. Resolve #275 first, then take whichever branch applies. ## Definition of done - [ ] The End-to-End Tests limits list in `README.md` matches every accommodation `tests/e2e/run.js` actually makes to the shipped code — no accommodation undocumented, no documented limit that is no longer real. - [ ] The `window.close` injection is either gone or described. - [ ] Docs-only: zero changes to code, config, scripts, CI or build files. - [ ] `TODO.md` updated in the same commit. - [ ] `make check` passes.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#293