Repository navigation
test: stop buying blocktank channels in e2e specs - #285
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
talosmachina
left a comment
There was a problem hiding this comment.
No findings. Skips the four specs that buy a Blocktank channel and moves the RN and native migration source wallets to onchain-only, with the verifiers expecting spending 0 and no transfer rows. Reviewed 4f611fb, full tier.
What I checked, and 6 candidates I ruled out
Read in full: test/helpers/native-migration.ts, the changed regions of test/specs/migration.e2e.ts (setupLegacyWallet, waitForRnBackup, verifyMigration), the describe blocks of transfer.e2e.ts, multiaddress.e2e.ts, hardware-wallet.e2e.ts, test/helpers/suite.ts
Ran: tsc --noEmit and eslint on the five files at this head, both clean
CI: this repo reports no checks on the branch; the four app-repo runs linked in the body (Android/iOS Staging and Migration) were still in progress when I read them, so nothing here has executed the changed migration path yet
Ruled out
- Sibling tests depending on a skipped one: every remaining test in the three describes gets a fresh app from
beforeEach(reinstallApp+completeOnboarding), so no state carried over from@transfer_1,@multi_address_2or@hardware_wallet_3. ciIt.skipbypassing the CI lock: it maps straight to mocha'sit.skipand never callsmarkComplete, so a skip cannot mark itself passed for the retries.- Dangling references to the removed RN helpers:
tscpasses, and the helpers they used (dragOnElement,mineBlocks,handleAndroidAlert,getAccessibleText,swipeFullScreenRN) still have other callers in the spec. returnToWalletHomeneeding a spending row: it waits forActivitySpendingtoo, but it already ran before the transfer onmain, so a zero spending row was already what it saw.waitForRnBackup(false)dropping a check that matters: without a channel theConnectionsrow has nothing to back up; the sweep setup already calls it the same way.- Other Blocktank order paths left in CI specs: the remaining
transferSavingsToSpendingcaller istest/helpers/qa-fixture.ts(thespendingkind), which is outside the CI spec glob and outside this diff;test/specs/mainnet/*targets mainnet Blocktank, not staging.
Merge confidence: 4/5, no findings, but the reworked migration verification (verifyMigration, verifyNativeMigration) has not passed a run yet; the linked runs decide it.
piotr-iohk
left a comment
There was a problem hiding this comment.
QA review
Scope: full PR review at 4f611fb, against merge base 14069ce, covering all changes, affected migration callers, helpers, fixtures and CI selection. Targeted selector and backup-contract checks used Android ac49b32 and iOS e85ee82; these were not full app reviews.
No new actionable code findings.
The onchain-only fixtures retain balance, history, tag and relaunch checks. Lightning migration/payment recovery coverage is removed, and the transfer/multi-address staging shards contain only skipped cases. Restoring that coverage requires a replacement staging channel fixture. The Blocktank source retains regtest deposit/mining routes while removing order creation; deployment was not probed.
Validation: TypeScript, changed-file ESLint and diff whitespace checks passed. Prettier flags transfer/multiaddress formatting already present at the base. Hosted Android migration logs confirm this E2E revision passed RN upgrade and native restore/upgrade; RN restore was still retrying. iOS migration had no completed migration result. Appium was not run locally; these results do not establish a full suite pass.
Suggested additional test cases
- Android and iOS, regtest: prepare a fresh passphrase-protected RN wallet and run the extended upgrade case (
@migration_3). Expect all funds in savings, zero spending, both tagged transactions and unchanged balances after relaunch.
Reviewer model: gpt-6-astra
Reasoning effort: high
@piotr-iohk Dispatched with
Android standard migration passed on this head: https://github.com/synonymdev/bitkit-android/actions/runs/40356577186. I'll post the extended and iOS results here and merge after these runs finish, since they still clone this branch. |
|
Results of the runs dispatched against this branch: Staging
Migration, standard set Migration, extended set
|
Refs:
Blocktank staging serves the read-only API since 26 Oct:
POST /channels(order creation),POST /cjitand the gift API return 404. Every spec that buys a channel from Blocktank now fails, so this PR stops the specs from creating orders.Skipped
@transfer_1and@transfer_maxintransfer.e2e.ts: both buy a Blocktank channel.@multi_address_2inmultiaddress.e2e.ts: transfers all funds to spending through Blocktank.@hardware_wallet_3inhardware-wallet.e2e.ts: transfers Trezor funds to spending through Blocktank. Local builds also use Blocktank staging, so the iOS@ios_gaterun hits it too.Each skip carries a one-line comment pointing at synonymdev/blocktank-lsp-http#168. With these skipped, the
@transfer_stagingand@multi_address_stagingstaging shards run no tests.Migration specs keep running without a spending balance
The four migration cases (
rn_restore,rn_upgrade,native_restore,native_upgrade) only bought a channel during source wallet setup. Skipping them would remove the release migration gate, so the source wallets now stay onchain-only:setupLegacyWalletdrops the RN transfer to spending and waits for the onchain backups only, as the sweep setup already does.prepareNativeMigrationWalletdrops the transfer to spending and expects savings of 200 000 and spending of 0.verifyMigrationexpects spending 0, two activity rows (sent, received) and an empty Other tab.verifyNativeMigrationdrops the live Lightning payment, which needs a channel; the restore, upgrade, tag, relaunch and balance checks stay.transferToSpendingRN,assertRnSpendingBalanceVisible) are removed.Lightning channel migration loses its coverage. Follow-up: update the channel-migration specs for the Blocktank sunset.
Validation
tsc --noEmit, eslint and prettier pass. Runs dispatched on the app branches named after this branch, which resolve to it:Results follow in a comment once the runs finish.