Repository navigation
test: offline Soroban RPC fixture, referral tests, task verification integration tests, cross-browser matrix - #1422
Merged
joelpeace48-cell merged 1 commit intoOct 18, 2026
Conversation
…integration tests, cross-browser matrix Closes FinesseStudioLab#1325, FinesseStudioLab#1328, FinesseStudioLab#1329, FinesseStudioLab#1330
|
@zerroai Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
| }, | ||
| }; | ||
| } | ||
| const result = typeof produce === 'function' ? produce(params, api) : produce; |
joelpeace48-cell
merged commit Oct 18, 2026
a8fefbf
into
FinesseStudioLab:main
7 of 25 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#1325 – Mock Soroban RPC fixture. New
backend/src/mocks/mockSorobanRpc.js.createMockSorobanRpc()is an in-memory JSON-RPC endpoint with valid-shaped defaults forgetHealth,getNetwork,getLatestLedger,getLedgerEntries,getEvents,simulateTransaction,sendTransactionandgetTransaction(unique hashes, optional pending polls before a transaction resolves). Tests can override any method (setResponse, value or function of the params), inject failures (failNext, as a JSON-RPC error or an HTTP status), pin a transaction outcome (registerTransaction), move the ledger (advanceLedger), read recordedcalls, andreset(). It plugs in as afetchreplacement (rpc.fetch) or as a real local HTTP server (startMockSorobanRpcServer()), so it works withcheckSorobanRpcHealthand with the Stellar SDKrpc.Serverwith no network.mockSorobanRpc.test.js(9 tests) covers all of that. The existing minimalcreateMockSorobanServerincontractMocks.jsis left as is.#1328 – Cross-browser pipeline.
frontend/playwright.config.jsnow hasedge(msedge channel),mobile-chrome(Pixel 7),mobile-safari(iPhone 14) andmobile-edge(Pixel 7 on msedge) alongside the existing Chromium/Firefox/WebKit projects. The CIcross-browser-e2ejob becomes a 7-entry matrix with aninstallmapping (msedge for the Edge projects, Chromium/WebKit for the mobile Chrome/Safari projects). The mobile projects run onlycross-browser.spec.tsandbasic.spec.js, because the wallet-extension specs assume a desktop browser.frontend/tests/e2e/README.mdis updated. Verified the config loads and lists the expected tests per project (playwright test --list); the matrix has not run on CI before this PR.#1329 – Referral tests.
services/referralTiers.test.js(every tier boundary, progress and referrals-to-next, top tier, invalid input, monotonicity) anddal/sqliteReferralRepository.test.jsagainst an in-memory SQLite database using the real002_referralsmigration: first-referrer attribution wins and duplicates are ignored, attribution is per campaign, a multi-level tree credits only direct referrals, leaderboard ranking with ties (1, 1, 3), pagination and campaign scoping, and referral counts moving a referrer across the silver and gold tier boundaries.#1330 – Task verification integration tests.
integration/taskVerification.integration.test.jsruns the real route, service and HTTP client against local stand-ins for third-party APIs: a fake Twitter API v2 server (like, retweet, follow and tweet tasks, unknown users/targets, pagination bounded bymaxPages, 429 withRetry-After, rejected credentials, upstream 5xx, unreachable API, missing token, invalid input) and signed GitHub webhook deliveries through the real routes and store (merged PR vs. closed-unmerged, completed vs. not-planned issues, redelivery idempotency, forged/missing/tampered signatures, unconfigured secret, ping, missing delivery id, invalid JSON, admin lookup). The repository has no Discord task verification code, so there is nothing to test for Discord yet; that part of the issue title is not covered.Testing
node --teston the four new backend test files: 42 passing. Frontend Playwright config verified withplaywright test --listfor the new projects; e2e itself was not run locally (needs the browsers and a build).Notes
src/index.js, which currently fails to parse onmain(andcreateAppcannot start because of the migration numbering); they use the individual route/service/repository modules so they run independently of that.Closes #1325
Closes #1328
Closes #1329
Closes #1330