test: assert the DoD items from #150 and #151 that the harness does not yet cover #188

Open
opened 2026-08-09 18:46:04 +02:00 by clawbot · 1 comment
Collaborator

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.

Items not currently asserted

From #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 #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 #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
Author
Collaborator

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.

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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#188