Filed so that closing #150 and #151 does not silently drop part of
what they asked for.
Why this exists
#185 carries closes #150 and closes #151, and it genuinely fixes both crashes - each fix was independently
demonstrated load-bearing across four reviews. But the e2e suite asserts that
the two screens open without throwing, which is narrower than the full
definition of done on those issues.
The fourth reviewer flagged the gap rather than waving it through, and accepted
it under the out-of-scope clause of #181 and the sequencing decision at #181 (comment). That was the
right call for the PR. It is not a reason to lose the remaining items.
The alternative - leaving them implied-but-unasserted behind a closes - is
precisely the "the claim overstates what was verified" pattern this whole line
of work exists to stamp out.
the native-ETH transaction detail path still renders correctly, i.e. the fix
did not regress the non-ERC-20 case
tap-to-copy behaviour on the detail screen
Definition of done
Each item above is asserted by the e2e suite.
Each new assertion is demonstrated to fail against a deliberately broken
variant, with the captured output in the PR. The standing rule on this repo
applies: a green run is not evidence.
No assertion is weakened to make it pass. If an item turns out not to be
drivable from the harness, say which and why, and it stays on the human list
rather than being quietly dropped.
Note
Sequence this after #185 merges, and
after #187, which touches the same
file. It is small and additive - resist the urge to restructure the suite while
adding to it.
Filed so that closing https://git.eeqj.de/sneak/AutistMask/issues/150 and
https://git.eeqj.de/sneak/AutistMask/issues/151 does not silently drop part of
what they asked for.
## Why this exists
https://git.eeqj.de/sneak/AutistMask/pulls/185 carries `closes #150` and
`closes #151`, and it genuinely fixes both crashes - each fix was independently
demonstrated load-bearing across four reviews. But the e2e suite asserts that
the two screens **open without throwing**, which is narrower than the full
definition of done on those issues.
The fourth reviewer flagged the gap rather than waving it through, and accepted
it under the out-of-scope clause of
https://git.eeqj.de/sneak/AutistMask/issues/181 and the sequencing decision at
https://git.eeqj.de/sneak/AutistMask/issues/181#issuecomment-49683. That was the
right call for the PR. It is not a reason to lose the remaining items.
The alternative - leaving them implied-but-unasserted behind a `closes` - is
precisely the "the claim overstates what was verified" pattern this whole line
of work exists to stamp out.
## Items not currently asserted
From https://git.eeqj.de/sneak/AutistMask/issues/150:
- the back-navigation stack behaves correctly from the Add Token screen
- the common-token quick-pick populates the address field when clicked
(the suite asserts the buttons *render*, not that clicking one works)
From https://git.eeqj.de/sneak/AutistMask/issues/151:
- the native-ETH transaction detail path still renders correctly, i.e. the fix
did not regress the non-ERC-20 case
- tap-to-copy behaviour on the detail screen
## Definition of done
- Each item above is asserted by the e2e suite.
- Each new assertion is demonstrated to fail against a deliberately broken
variant, with the captured output in the PR. The standing rule on this repo
applies: a green run is not evidence.
- No assertion is weakened to make it pass. If an item turns out not to be
drivable from the harness, say which and why, and it stays on the human list
rather than being quietly dropped.
## Note
Sequence this after https://git.eeqj.de/sneak/AutistMask/pulls/185 merges, and
after https://git.eeqj.de/sneak/AutistMask/issues/187, which touches the same
file. It is small and additive - resist the urge to restructure the suite while
adding to it.
clawbot
added this to the 1.0.0 milestone 2026-08-09 18:46:04 +02:00
Plan. Four tests appended to tests/e2e/run.js immediately after the existing #151 test, in the shape the file already uses. No restructuring, one new
fixture flag.
Quick-pick: on the Add Token screen, assert the address field is empty,
click the first .common-token, assert #add-token-address now equals that
button's data-address.
Back stack: drive Home -> AddressDetail -> AddToken, then Back lands on #view-address and a second Back on #view-main. Plus a direct reading of
the persisted viewStack out of chrome.storage.local at each step, so
"no duplicated or orphaned stack entry" is asserted rather than inferred.
Native ETH detail: new seedNativeTransfer option in tests/e2e/network.js
— /addresses/<addr>/transactions currently answers [] unconditionally,
so there is no native row to click today. Assert the detail screen opens,
the type field reads Native ETH Transfer, the hash matches, and the token
contract section stays hidden.
Tap-to-copy: click the token-contract address on the ERC-20 detail screen
and read the real clipboard back. If the container refuses clipboard reads,
that goes in the PR body as an unmet item, not into a weaker assertion.
Each of the four gets broken deliberately and the failing output goes in the PR
body. TODO.md in the same commit.
Plan. Four tests appended to `tests/e2e/run.js` immediately after the existing
`#151` test, in the shape the file already uses. No restructuring, one new
fixture flag.
1. Quick-pick: on the Add Token screen, assert the address field is empty,
click the first `.common-token`, assert `#add-token-address` now equals that
button's `data-address`.
2. Back stack: drive Home -> AddressDetail -> AddToken, then Back lands on
`#view-address` and a second Back on `#view-main`. Plus a direct reading of
the persisted `viewStack` out of `chrome.storage.local` at each step, so
"no duplicated or orphaned stack entry" is asserted rather than inferred.
3. Native ETH detail: new `seedNativeTransfer` option in `tests/e2e/network.js`
— `/addresses/<addr>/transactions` currently answers `[]` unconditionally,
so there is no native row to click today. Assert the detail screen opens,
the type field reads `Native ETH Transfer`, the hash matches, and the token
contract section stays hidden.
4. Tap-to-copy: click the token-contract address on the ERC-20 detail screen
and read the real clipboard back. If the container refuses clipboard reads,
that goes in the PR body as an unmet item, not into a weaker assertion.
Each of the four gets broken deliberately and the failing output goes in the PR
body. `TODO.md` in the same commit.
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.
Filed so that closing #150 and
#151 does not silently drop part of
what they asked for.
Why this exists
#185 carries
closes #150andcloses #151, and it genuinely fixes both crashes - each fix was independentlydemonstrated load-bearing across four reviews. But the e2e suite asserts that
the two screens open without throwing, which is narrower than the full
definition of done on those issues.
The fourth reviewer flagged the gap rather than waving it through, and accepted
it under the out-of-scope clause of
#181 and the sequencing decision at
#181 (comment). That was the
right call for the PR. It is not a reason to lose the remaining items.
The alternative - leaving them implied-but-unasserted behind a
closes- isprecisely the "the claim overstates what was verified" pattern this whole line
of work exists to stamp out.
Items not currently asserted
From #150:
(the suite asserts the buttons render, not that clicking one works)
From #151:
did not regress the non-ERC-20 case
Definition of done
variant, with the captured output in the PR. The standing rule on this repo
applies: a green run is not evidence.
drivable from the harness, say which and why, and it stays on the human list
rather than being quietly dropped.
Note
Sequence this after #185 merges, and
after #187, which touches the same
file. It is small and additive - resist the urge to restructure the suite while
adding to it.
Plan. Four tests appended to
tests/e2e/run.jsimmediately after the existing#151test, in the shape the file already uses. No restructuring, one newfixture flag.
click the first
.common-token, assert#add-token-addressnow equals thatbutton's
data-address.#view-addressand a second Back on#view-main. Plus a direct reading ofthe persisted
viewStackout ofchrome.storage.localat each step, so"no duplicated or orphaned stack entry" is asserted rather than inferred.
seedNativeTransferoption intests/e2e/network.js—
/addresses/<addr>/transactionscurrently answers[]unconditionally,so there is no native row to click today. Assert the detail screen opens,
the type field reads
Native ETH Transfer, the hash matches, and the tokencontract section stays hidden.
and read the real clipboard back. If the container refuses clipboard reads,
that goes in the PR body as an unmet item, not into a weaker assertion.
Each of the four gets broken deliberately and the failing output goes in the PR
body.
TODO.mdin the same commit.