Skip to content

fix/mobile-port-regressions#785

Merged
dangershony merged 9 commits intomainfrom
fix/mobile-port-regressions
Apr 25, 2026
Merged

fix/mobile-port-regressions#785
dangershony merged 9 commits intomainfrom
fix/mobile-port-regressions

Conversation

@DavidGershony
Copy link
Copy Markdown
Collaborator

No description provided.

DavidGershony and others added 7 commits April 24, 2026 16:45
…n test

Add AutomationProperties.AutomationId to key controls in InvestPageView
and InvestModalsView so headless integration tests can find them the same
way Appium would — making tests portable to E2E and resilient to
ViewModel extraction/refactoring.

New test: OneClickInvestOnChainFundedTest exercises the full 1-click
invest on-chain flow with real faucet funding. No wallet pre-funding —
the faucet sends directly to the invoice address shown in the UI,
simulating an external payer scanning the QR code. Asserts against UI
controls (AutomationIds) to verify what the user actually sees.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New test: OneClickInvestLightningFundedTest exercises the complete
Lightning invest flow end-to-end. Uses a ThunderHub GraphQL client to
pay the BOLT11 invoice from an LND node.

Flow: navigate to project → set amount → submit → pay invoice instead →
switch to Lightning tab → wait for Boltz swap invoice → ThunderHub pays
invoice → Boltz claims on-chain → payment detected → build investment →
success screen.

Also adds:
- ThunderHubClient helper (GraphQL login + pay mutation)
- InvestLightningTab AutomationId

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The InvoiceString TextBlock uses TextTrimming="CharacterEllipsis" which
truncates the BOLT11 invoice. The test now verifies the UI shows an
invoice (prefix check) but reads the full string from the VM's
LightningInvoice property to pass to ThunderHub for payment.

Also fixes the prefix check to match testnet invoices (lntbs prefix).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…se Thub-Auth cookie

ThunderHub uses a hashed account ID (not the display number) and returns
the JWT in a Set-Cookie: Thub-Auth header (not SSOAuth). The client now:
- Queries getServerAccounts to resolve "LND-2" → hash ID
- Extracts the Thub-Auth JWT from the login response Set-Cookie header
- Sends it as a Cookie header on subsequent requests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lightning test now reads THUNDERHUB_URL, THUNDERHUB_ACCOUNT, and
THUNDERHUB_PASSWORD from env vars and skips if not set. No credentials
in source.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…b auto-pay

The test now logs the full BOLT11 invoice to the console so it can be
paid manually via ThunderHub UI. The automated ThunderHub payment code
is commented out with a TODO to re-enable when env vars are configured.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@DavidGershony DavidGershony force-pushed the fix/mobile-port-regressions branch from a4a2044 to 3e335ce Compare April 24, 2026 16:11
DavidGershony and others added 2 commits April 24, 2026 18:19
Replace manual ThunderHub payment with LndPayClient that calls the
/v2/router/send streaming endpoint on our self-hosted LND proxy.
Macaroon is read from env var (CI) or .NET user secrets (local dev).

Local setup: dotnet user-secrets set LND1_PAY_MACAROON <hex>

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The ReactiveCommand.Execute().Subscribe() pattern runs synchronously
past initial PaymentStatusText values when a wallet already exists,
making exact string matches non-deterministic. Replace with
NotBeNullOrEmpty while keeping stable state assertions (screen, tab,
IsProcessing, labels, icons).
@dangershony dangershony merged commit 6b609f0 into main Apr 25, 2026
1 check passed
@dangershony dangershony deleted the fix/mobile-port-regressions branch April 25, 2026 00:06
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.

2 participants