Skip to content

test: stop buying blocktank channels in e2e specs - #285

Merged
ovitrif merged 1 commit into
mainfrom
test/skip-blocktank-order-tests
Oct 26, 2026
Merged

ovitrif merged 1 commit into
mainfrom
test/skip-blocktank-order-tests

Conversation

@ovitrif

@ovitrif ovitrif commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Refs:

Blocktank staging serves the read-only API since 26 Oct: POST /channels (order creation), POST /cjit and 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_1 and @transfer_max in transfer.e2e.ts: both buy a Blocktank channel.
  • @multi_address_2 in multiaddress.e2e.ts: transfers all funds to spending through Blocktank.
  • @hardware_wallet_3 in hardware-wallet.e2e.ts: transfers Trezor funds to spending through Blocktank. Local builds also use Blocktank staging, so the iOS @ios_gate run hits it too.

Each skip carries a one-line comment pointing at synonymdev/blocktank-lsp-http#168. With these skipped, the @transfer_staging and @multi_address_staging staging 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:

  • setupLegacyWallet drops the RN transfer to spending and waits for the onchain backups only, as the sweep setup already does.
  • prepareNativeMigrationWallet drops the transfer to spending and expects savings of 200 000 and spending of 0.
  • verifyMigration expects spending 0, two activity rows (sent, received) and an empty Other tab.
  • verifyNativeMigration drops the live Lightning payment, which needs a channel; the restore, upgrade, tag, relaunch and balance checks stay.
  • The RN helpers that only served the channel purchase (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.

@ovitrif ovitrif self-assigned this Oct 26, 2026
@ovitrif
ovitrif requested a review from piotr-iohk October 26, 2026 16:11
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T16:13:04.870568Z 4f611fb PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_2 or @hardware_wallet_3.
  • ciIt.skip bypassing the CI lock: it maps straight to mocha's it.skip and never calls markComplete, so a skip cannot mark itself passed for the retries.
  • Dangling references to the removed RN helpers: tsc passes, and the helpers they used (dragOnElement, mineBlocks, handleAndroidAlert, getAccessibleText, swipeFullScreenRN) still have other callers in the spec.
  • returnToWalletHome needing a spending row: it waits for ActivitySpending too, but it already ran before the transfer on main, so a zero spending row was already what it saw.
  • waitForRnBackup(false) dropping a check that matters: without a channel the Connections row has nothing to back up; the sweep setup already calls it the same way.
  • Other Blocktank order paths left in CI specs: the remaining transferSavingsToSpending caller is test/helpers/qa-fixture.ts (the spending kind), 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 piotr-iohk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 piotr-iohk left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks

@ovitrif

ovitrif commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

Android and iOS, regtest: prepare a fresh passphrase-protected RN wallet and run the extended upgrade case (@migration_3).

@piotr-iohk Dispatched with extended_rn=true on the app branch that resolves to this E2E branch:

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.

@ovitrif

ovitrif commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator Author

Results of the runs dispatched against this branch:

Staging

  • iOS: all shards green, transfer, multi_address, pubky and ios_nightly_ui included (run).
  • Android: transfer, multi_address and hardware_wallet green (run). pubky_paykit failed on @pubky_profile_4, a Pubky contact/profile spec this PR does not touch; it passed on master's 15:14 UTC run.

Migration, standard set

  • Android: all four cases green (run).
  • iOS: all four cases green (run).

Migration, extended set

  • Android: @migration_3 (passphrase) green, along with the standard cases (run).
  • @migration_4 (rn_sweep) fails on both platforms in setupWalletWithLegacyFunds, which this PR leaves unchanged. The RN TotalBalance money text is not displayed after the send to self. It failed on both Android attempts and in the iOS wallet preparation (run). On iOS this failure skipped all RN migration jobs, so @migration_3 did not run there; native restore and upgrade passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants