test: drive WaitTx's timeout and failed-lookup exits end to end #465

Merged
clawbot merged 1 commits from issue-315-waittx-exits into next 2026-10-05 14:26:07 +02:00
Collaborator

Closes #315.

Two Chrome end-to-end cases send ETH from the address screen and leave the wait for its receipt running:

  • Lookups answer "no receipt", and the one about 60 seconds after the broadcast ends the wait with the timeout message.
  • A new fixture switch, failReceiptLookup, makes every eth_getTransactionReceipt answer with an error. The sixth failure in a row ends the wait with the message naming the unreachable network. Each failed lookup is logged as a console error. The case declares exactly six, so it also fails if the wait ends sooner or keeps going.

Both check the exact message and that Done returns to the address screen. README gains a coverage sentence and a note that these cases add about two minutes to the Chrome suite.

  • Judgement call: both cases wait in real time, about a minute each. Playwright's clock is installed on the whole browser context, cannot be removed, and is replayed into pages opened later, so every later test would run on it. Moving the stored broadcast time back can be undone by the save the popup makes every ten seconds. The failed-lookup count cannot be shortened at all: it lives in the open wait, and only its ten-second timer advances it.
  • How I checked they bite: with both error exits removed from src/popup/views/txStatus.js, both cases failed waiting for the error screen and every other case passed.

Model: opus-5-5

Closes https://git.eeqj.de/sneak/AutistMask/issues/315. Two Chrome end-to-end cases send ETH from the address screen and leave the wait for its receipt running: - Lookups answer "no receipt", and the one about 60 seconds after the broadcast ends the wait with the timeout message. - A new fixture switch, `failReceiptLookup`, makes every `eth_getTransactionReceipt` answer with an error. The sixth failure in a row ends the wait with the message naming the unreachable network. Each failed lookup is logged as a console error. The case declares exactly six, so it also fails if the wait ends sooner or keeps going. Both check the exact message and that Done returns to the address screen. README gains a coverage sentence and a note that these cases add about two minutes to the Chrome suite. - Judgement call: both cases wait in real time, about a minute each. Playwright's clock is installed on the whole browser context, cannot be removed, and is replayed into pages opened later, so every later test would run on it. Moving the stored broadcast time back can be undone by the save the popup makes every ten seconds. The failed-lookup count cannot be shortened at all: it lives in the open wait, and only its ten-second timer advances it. - How I checked they bite: with both error exits removed from `src/popup/views/txStatus.js`, both cases failed waiting for the error screen and every other case passed. Model: opus-5-5
clawbot added the needs-review label 2026-10-05 12:45:31 +02:00
clawbot self-assigned this 2026-10-05 12:45:31 +02:00
Author
Collaborator

FAIL

  1. TODO.md line 48 (Completed Steps): the branch conflicts with current next, which has since added the entry for #254 at the same place. Acceptable: rebase onto current next, keep both entries with the #315 entry on top, and run make fmt.

Model: opus-5-5

FAIL 1. `TODO.md` line 48 (Completed Steps): the branch conflicts with current `next`, which has since added the entry for https://git.eeqj.de/sneak/AutistMask/issues/254 at the same place. Acceptable: rebase onto current `next`, keep both entries with the https://git.eeqj.de/sneak/AutistMask/issues/315 entry on top, and run `make fmt`. Model: opus-5-5
clawbot added needs-rebase and removed needs-review labels 2026-10-05 13:10:23 +02:00
clawbot force-pushed issue-315-waittx-exits from 90c7d3819b to 4a2d0b4a2a 2026-10-05 13:45:21 +02:00 Compare
Author
Collaborator

Rebased onto 5d26283; the only conflict was TODO.md, resolved by keeping both Completed Steps entries (this one first, then the one from #254); nothing else changed.

Model: opus-5-5

Rebased onto `5d26283`; the only conflict was `TODO.md`, resolved by keeping both Completed Steps entries (this one first, then the one from https://git.eeqj.de/sneak/AutistMask/issues/254); nothing else changed. Model: opus-5-5
clawbot added needs-review and removed needs-rebase labels 2026-10-05 13:45:28 +02:00
clawbot added 1 commit 2026-10-05 14:01:48 +02:00
test: drive WaitTx's timeout and failed-lookup exits end to end (closes #315)
check / check (push) Waiting to run
e2e / e2e-chrome (push) Waiting to run
e2e / e2e-firefox (push) Waiting to run
3ddea28ed8
Two Chrome end-to-end cases send ETH and leave the wait for its receipt
running. In one, lookups answer "no receipt" until the 60-second deadline
ends the wait with the timeout message. In the other, a new fixture switch
makes every receipt lookup fail, and the sixth failure in a row ends the
wait with the message naming the unreachable network. Both check the exact
message and that Done returns to the address screen. Both wait in real
time: Playwright's clock would apply to every later test, and backdating
the stored broadcast time races the popup's own save.

Model: opus-5-5
clawbot force-pushed issue-315-waittx-exits from 4a2d0b4a2a to 3ddea28ed8 2026-10-05 14:01:48 +02:00 Compare
Author
Collaborator

Rebased onto 9bd607b. Only TODO.md conflicted, between this entry and the one from #466. Both are kept, with this one on top. Nothing else changed.

Model: opus-5-5

Rebased onto `9bd607b`. Only `TODO.md` conflicted, between this entry and the one from https://git.eeqj.de/sneak/AutistMask/pulls/466. Both are kept, with this one on top. Nothing else changed. Model: opus-5-5
Author
Collaborator

PASS

Model: opus-5-5

PASS Model: opus-5-5
clawbot merged commit 9776f62f28 into next 2026-10-05 14:26:07 +02:00
clawbot deleted branch issue-315-waittx-exits 2026-10-05 14:26:07 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#465