feat:E2E tests, ESLint, Horizon reliability, payment confirmation#349
Open
MethelyDev wants to merge 5 commits into
Open
feat:E2E tests, ESLint, Horizon reliability, payment confirmation#349MethelyDev wants to merge 5 commits into
MethelyDev wants to merge 5 commits into
Conversation
Covers three acceptance criteria from issue Emmy123222#223: - unauthenticated dashboard/transactions show the Connect wallet prompt - after Freighter mock-connect, address label and XLM balance are visible - navigating to /transactions post-connect shows the transaction list, not the gate Reuses the shared fixtures.ts freighter + backend mock for the authenticated scenarios.
Warns developers when console.log (or any other console method except console.warn and console.error) is used directly in the frontend. This nudges them toward the project's proper logging abstraction without breaking existing console.warn/error calls.
Emmy123222#235) All Horizon calls (loadAccount, payments query, transaction memo fetch) are now wrapped in withTimeoutAndRetry which: - races each call against a 10 s AbortController timer - retries up to 3 times on transient errors (5xx, network resets, timeouts) using exponential back-off (100 ms × 2^attempt) - does NOT retry 404 responses, which are definitive This prevents Node.js from queueing requests indefinitely when the Horizon server is slow or briefly unavailable.
…Emmy123222#238) The SendConfirmationModal already existed but did not fully satisfy the acceptance criteria. Updates: - Destination now shows both the shortened form (8-char prefix/suffix) and the full address below it in monospace, so the user can spot paste-errors at a glance - Renamed the primary CTA from 'Confirm & Send' to 'Confirm & Sign' to match the acceptance criteria and reflect that Freighter signing happens on confirm - Added role="dialog" + aria-modal + aria-labelledby for accessibility
Summarises all four issues addressed in this branch: Emmy123222#223 (E2E wallet connect tests), Emmy123222#228 (ESLint no-console), Emmy123222#235 (Horizon timeout + retry), Emmy123222#238 (confirmation modal).
|
@Samuel1505 is attempting to deploy a commit to the Emmanuel's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@MethelyDev 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! 🚀 |
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.
PR: Multi-issue improvements — E2E tests, ESLint, Horizon reliability, payment confirmation
Summary
no-consolerule for frontendstellarService.jsHorizon callsChanges
frontend/e2e/wallet-connect.spec.ts(new file) — closes #223Added a dedicated Playwright spec that covers the three acceptance criteria:
/transactions./transactionsafter connecting renders the transaction list view (not the wallet-gate screen).Uses the existing
fixtures.tsfor the authenticated scenarios (mocked Freighter, Horizon, and backend auth endpoints).frontend/.eslintrc.json— closes #228Added the
no-consolerule atwarnlevel, allowingconsole.warnandconsole.errorto pass through:This surfaces direct
console.logcalls duringnext lint/ CI so developers are reminded to use the project's logging abstraction, without breaking any existingconsole.warn/console.errorcalls.backend/src/services/stellarService.js— closes #235Introduced a
withTimeoutAndRetry(fn, timeoutMs)helper that:AbortControllertimer.5xx,ECONNRESET,ETIMEDOUT,AbortError) using exponential back-off (100 ms × 2ⁿ).404responses (account not found is definitive).Applied to all three Horizon call sites:
server.loadAccount(publicKey)insidegetAccountquery.call()insidegetPaymentsop.transaction()(memo fetch) insidegetPaymentsfrontend/components/SendPaymentForm.tsx— closes #238Updated
SendConfirmationModalto fully satisfy the acceptance criteria:GABCD…WXYZ) and the full address in monospace below it — users can spot accidental paste errors at a glance.Confirm & Send→Confirm & Signto match the acceptance criteria and reflect that Freighter signing occurs on confirmation.role="dialog",aria-modal="true", andaria-labelledbyfor accessibility.Test plan
npm run test:e2einfrontend/—wallet-connect.spec.tspasses in Chromium.npm run lintinfrontend/—no-consolewarnings appear for anyconsole.logcalls.