Skip to content

test(surfpool): finish browser e2e runbook#546

Open
GuiBibeau wants to merge 5 commits into
mainfrom
codex/pro-1415-1416-surfpool-e2e-runbook
Open

test(surfpool): finish browser e2e runbook#546
GuiBibeau wants to merge 5 commits into
mainfrom
codex/pro-1415-1416-surfpool-e2e-runbook

Conversation

@GuiBibeau

Copy link
Copy Markdown
Collaborator

Summary

  • run Surfpool-backed dashboard wallet activity E2E without the Kora fee-payer fallback loop
  • make the dashboard browser E2E CI lane and artifacts explicitly Surfpool/local
  • document Surfpool vs live Kora test ownership, local commands, startup/funding troubleshooting, and secret-backed smoke failures

Local validation

  • pnpm exec biome check .github/workflows/ci.yml apps/sdp-web/playwright/support/local-dashboard-bootstrap.ts apps/sdp-web/playwright/tests/wallets.e2e.spec.ts packages/sdp-api-integration/README.md
  • pnpm --filter sdp-web typecheck
  • git diff --check

Screenshots

Not applicable; this is CI/test harness and runbook documentation only.

Closes PRO-1415
Closes PRO-1416

@linear

linear Bot commented Jun 29, 2026

Copy link
Copy Markdown

PRO-1415

PRO-1416

@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sdp-docs Ready Ready Preview, Comment Jun 29, 2026 8:52pm
sdp-web Ready Ready Preview, Comment Jun 29, 2026 8:52pm

Request Review

@GuiBibeau

Copy link
Copy Markdown
Collaborator Author

@greptileai review

@GuiBibeau GuiBibeau changed the title Finish Surfpool browser E2E runbook test(surfpool): finish browser e2e runbook Jun 29, 2026
@greptile-apps

greptile-apps Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR finishes the Surfpool-backed dashboard E2E runbook by removing the Kora fee-payer fallback from the dashboard browser lane, merging two previously-skipped wallet-activity tests into a single Surfpool-compatible test, and updating CI, the bootstrap helper, and the integration README to reflect the new local-first split.

  • CI (ci.yml): The Dashboard E2E matrix entry is renamed to Dashboard E2E (Surfpool Local) with a matching artifact suffix; the KORA_RPC_URL up-front check is removed from this lane since it now runs purely against Surfpool.
  • Bootstrap (local-dashboard-bootstrap.ts): Adds isKoraSurfpoolShim() guard so fundWalletToLamports uses a direct airdrop instead of the Kora fee-payer loop when KORA_SURFPOOL_SHIM=true, eliminating the dependency on hosted Kora.
  • Test (wallets.e2e.spec.ts): Merges the formerly-skipped burn-activity test and the refresh-failure stale-rows test into one, removing the force-burn step and adjusting expected supply/balance from 3 → 4 (mint 6, burn 2); uses { times: 1 } route interception and waitForResponse instead of a manual flag for the 503 failure case.

Confidence Score: 5/5

Safe to merge — changes are confined to test harness, CI configuration, and documentation with no production code paths altered.

All changes are in E2E test infrastructure and documentation. The bootstrap funding path is correctly short-circuited behind the KORA_SURFPOOL_SHIM guard, the merged test arithmetic is consistent (mint 6, burn 2 → supply/balance 4), and the route-intercept strategy uses well-supported Playwright primitives. No application logic is touched.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/ci.yml Renames Dashboard E2E matrix entry and artifact suffix to Surfpool-specific names; removes the KORA_RPC_URL pre-flight check and updates the fork-skip notice to match.
apps/sdp-web/playwright/support/local-dashboard-bootstrap.ts Adds isKoraSurfpoolShim() and a short-circuit path in fundWalletToLamports that uses direct airdrop instead of the Kora fee-payer loop when the shim is active; logic is well-scoped and the error message is descriptive.
apps/sdp-web/playwright/tests/wallets.e2e.spec.ts Merges two previously-conditional tests into one unified Surfpool-compatible test; removes the usesKoraSurfpoolShim skip guards, force-burn step, and the manual flag approach for the 503 failure scenario in favour of Playwright's built-in { times: 1 } route interception and waitForResponse.
packages/sdp-api-integration/README.md Comprehensive documentation update covering lane ownership table, updated prerequisites, new env vars, and three new troubleshooting sections for Surfpool, live Kora smoke, and secret-backed browser failures.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[fundWalletToLamports] --> B{Already funded?}
    B -- Yes --> C[Return early]
    B -- No --> D{isKoraSurfpoolShim?}
    D -- Yes --> E[requestWalletAirdropLamports]
    E --> F[waitForWalletLamports]
    F --> G[Return]
    E -- error --> H[Throw descriptive error]
    D -- No --> I[fundAddressViaKoraFeePayer]
    I -- success --> J[waitForWalletLamports short timeout]
    J -- success --> G
    J -- fail --> K[requestWalletAirdropLamports fallback]
    I -- fail --> K
    K --> L[waitForWalletLamports]
    L --> G
    K -- fail --> M[Throw combined Kora + airdrop error]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[fundWalletToLamports] --> B{Already funded?}
    B -- Yes --> C[Return early]
    B -- No --> D{isKoraSurfpoolShim?}
    D -- Yes --> E[requestWalletAirdropLamports]
    E --> F[waitForWalletLamports]
    F --> G[Return]
    E -- error --> H[Throw descriptive error]
    D -- No --> I[fundAddressViaKoraFeePayer]
    I -- success --> J[waitForWalletLamports short timeout]
    J -- success --> G
    J -- fail --> K[requestWalletAirdropLamports fallback]
    I -- fail --> K
    K --> L[waitForWalletLamports]
    L --> G
    K -- fail --> M[Throw combined Kora + airdrop error]
Loading

Reviews (7): Last reviewed commit: "test(surfpool): reuse wallet activity re..." | Re-trigger Greptile

@GuiBibeau GuiBibeau marked this pull request as ready for review June 29, 2026 19:52
@GuiBibeau GuiBibeau marked this pull request as draft June 29, 2026 19:54
@GuiBibeau GuiBibeau marked this pull request as ready for review June 29, 2026 19:54
@GuiBibeau GuiBibeau marked this pull request as draft June 29, 2026 20:21
@GuiBibeau

Copy link
Copy Markdown
Collaborator Author

@greptileai review

@GuiBibeau

Copy link
Copy Markdown
Collaborator Author

@greptileai review

@GuiBibeau

Copy link
Copy Markdown
Collaborator Author

@greptileai review

@GuiBibeau

Copy link
Copy Markdown
Collaborator Author

@greptileai review

@GuiBibeau

Copy link
Copy Markdown
Collaborator Author

QA-ready: Greptile is 5/5 on ec8185d with no open review threads, and all PR checks are green.

Local checks run:

  • pnpm exec biome check apps/sdp-web/playwright/tests/wallets.e2e.spec.ts
  • pnpm --filter sdp-web typecheck
  • git diff --check

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.

1 participant