Skip to content

feat(backend): add unit tests for auth middleware and endpoints #369 #211

feat(backend): add unit tests for auth middleware and endpoints #369

feat(backend): add unit tests for auth middleware and endpoints #369 #211

Triggered via pull request April 29, 2026 07:52
Status Failure
Total duration 1m 10s
Artifacts 1

ci.yml

on: pull_request
Frontend CI
47s
Frontend CI
Backend CI
1m 5s
Backend CI
Soroban Contracts CI
44s
Soroban Contracts CI
Fit to window
Zoom out
Zoom in

Annotations

13 errors and 4 warnings
Frontend CI
Process completed with exit code 1.
src/__tests__/components.test.tsx > CancelConfirmModal > shows remaining = deposited - withdrawn: frontend/src/__tests__/components.test.tsx#L126
TestingLibraryElementError: Found multiple elements with the text: /800/ Here are the matching elements: Ignored nodes: comments, script, style <span class="font-semibold text-accent" > 800 USDC </span> Ignored nodes: comments, script, style <div class="mb-6 p-3 rounded-lg bg-red-500/10 border border-red-500/20 text-sm text-red-300" > <strong class="text-red-400" > What happens: </strong> The stream stops immediately. The recipient keeps any already-withdrawn funds. Remaining funds ( 800 USDC ) stay locked in the contract until the recipient withdraws or the admin resolves them. </div> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm" > <div class="glass-card relative w-full max-w-md mx-4 rounded-2xl border border-red-500/30 p-8" > <div class="flex items-start gap-4 mb-6" > <div class="shrink-0 flex h-10 w-10 items-center justify-center rounded-full bg-red-500/15" > <svg class="w-5 h-5 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" > <path d="M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" /> </svg> </div> <div> <h2 class="text-xl font-bold" > Cancel Stream? </h2> <p class="text-sm text-slate-400 mt-1" > This action is permanent and cannot be undone. </p> </div> <button aria-label="Close" class="ml-auto text-slate-400 hover:text-foreground transition-colors disabled:opacity-50" type="button" > <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" > <path d="M6 18L18 6M6 6l12 12" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" /> </svg> </button> </div> <div class="mb-6 rounded-lg bg-white/5 border border-glass-border divide-y divide-glass-border text-sm" > <div class="flex justify-between px-4 py-3" > <span class="text-slate-400" > Stream </span> <code class="text-accent font-mono text-xs" > stream-42 </code> </div> <div class="flex justify-between px-4 py-3" > <span class="text-slate-400" > Recipient </span> <code class="font-mono text-xs text-foreground" > GDEF456ABC789GHI012JKL345MNO678PQR901STU234VWX567YZA123BCD </code> </div> <div class="flex justify-between px-4 py-3" > <span class="text-slate-400" > Already withdrawn </span> <span class="font-semibold text-foreground" > 200 USDC </span> </div> <div class="flex justify-between px-4 py-3" > <span class="text-slate-400" > Remaining in stream </span> <span class="font-semibold
src/__tests__/components.test.tsx > LiveCounter > resets to initial when isPaused switches to true: frontend/src/__tests__/components.test.tsx#L49
TestingLibraryElementError: Unable to find an element with the text: 5. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div style="display: flex; align-items: center; gap: 0.75rem;" > <span style="position: relative; display: inline-flex; width: 0.75rem; height: 0.75rem;" > <span style="position: absolute; border-radius: 999px; background: #ef4444; opacity: 0.5; animation: none;" /> <span style="position: relative; display: inline-flex; width: 0.75rem; height: 0.75rem; border-radius: 999px; background: #ef4444;" /> </span> <p style="margin: 0px; font-size: 0.92rem; color: var(--text-muted);" /> </div> </div> </body> ❯ Object.getElementError ../node_modules/@testing-library/dom/dist/config.js:37:19 ❯ ../node_modules/@testing-library/dom/dist/query-helpers.js:76:38 ❯ ../node_modules/@testing-library/dom/dist/query-helpers.js:52:17 ❯ ../node_modules/@testing-library/dom/dist/query-helpers.js:95:19 ❯ src/__tests__/components.test.tsx:49:19
Backend CI
Duplicate function implementation.
Backend CI
Duplicate function implementation.
Backend CI
Property 'heartbeatTimer' does not exist on type 'SSEService'.
Backend CI
Property 'heartbeatTimer' does not exist on type 'SSEService'.
Backend CI
Property 'heartbeatTimer' does not exist on type 'SSEService'.
Backend CI
Property 'heartbeatTimer' does not exist on type 'SSEService'.
Backend CI
Property 'heartbeatTimer' does not exist on type 'SSEService'.
Backend CI
Duplicate function implementation.
Backend CI
Duplicate function implementation.
Backend CI
Property 'startHeartbeat' is private and only accessible within class 'SSEService'.
Frontend CI
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend CI: frontend/src/components/dashboard/dashboard-view.tsx#L6
'StreamListSkeleton' is defined but never used
Soroban Contracts CI
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/upload-artifact@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend CI
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
optimized-wasm
17.4 KB
sha256:797a38b0cc1dfcc90a1d76896dadd96e29a2845a4cd6ba232ed042792ec8f497