Skip to content

chore(deps-dev): bump jest-expo from 53.0.14 to 57.0.2 #405

chore(deps-dev): bump jest-expo from 53.0.14 to 57.0.2

chore(deps-dev): bump jest-expo from 53.0.14 to 57.0.2 #405

Triggered via pull request July 31, 2026 13:43
Status Failure
Total duration 48m 13s
Artifacts

ci.yml

on: pull_request
Rust fmt
8s
Rust fmt
Rust clippy
56s
Rust clippy
Rust tests
17m 0s
Rust tests
Backend typecheck
1m 47s
Backend typecheck
API typecheck
1m 47s
API typecheck
Frontend typecheck
1m 44s
Frontend typecheck
Backend lint
1m 39s
Backend lint
Backend tests
2m 46s
Backend tests
API lint
1m 42s
API lint
API tests
1m 43s
API tests
Frontend lint
1m 40s
Frontend lint
Frontend coverage (vitest >= 95%)
2m 8s
Frontend coverage (vitest >= 95%)
Mobile tests + coverage (≥ 70%)
1m 42s
Mobile tests + coverage (≥ 70%)
SDK browser bundle size (warn > 100 KB gzip)
1m 27s
SDK browser bundle size (warn > 100 KB gzip)
Helm chart lint
7s
Helm chart lint
SDK contract-surface coverage
6s
SDK contract-surface coverage
Fit to window
Zoom out
Zoom in

Annotations

76 errors and 18 warnings
Rust clippy
Process completed with exit code 101.
API typecheck
Process completed with exit code 2.
API typecheck
Object literal may only specify known properties, and 'extensions' does not exist in type 'ASTNode | readonly ASTNode[]'.
API typecheck
No overload matches this call.
API typecheck
No overload matches this call.
API typecheck
Object literal may only specify known properties, and 'nodes' does not exist in type 'ASTNode | readonly ASTNode[]'.
API typecheck
Object literal may only specify known properties, and 'nodes' does not exist in type 'ASTNode | readonly ASTNode[]'.
API typecheck
Object literal may only specify known properties, and 'nodes' does not exist in type 'ASTNode | readonly ASTNode[]'.
API typecheck
No overload matches this call.
Mobile tests + coverage (≥ 70%)
Process completed with exit code 1.
Backend typecheck
Type 'undefined' is not assignable to type 'string'.
Backend typecheck
Tuple type '[]' of length '0' has no element at index '0'.
Backend typecheck
Type 'undefined' is not assignable to type 'string'.
Backend typecheck
Tuple type '[]' of length '0' has no element at index '1'.
Backend typecheck
Type 'undefined' is not assignable to type 'string[]'.
Backend typecheck
Tuple type '[]' of length '0' has no element at index '0'.
Backend typecheck
Type 'undefined' is not assignable to type 'string'.
Backend typecheck
Tuple type '[]' of length '0' has no element at index '1'.
Backend typecheck
Type 'undefined' is not assignable to type 'string[]'.
Backend typecheck
Tuple type '[]' of length '0' has no element at index '1'.
Backend lint: backend/src/middleware/api-key-store.ts#L253
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L236
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L224
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L208
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L170
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/middleware/api-key-store.ts#L135
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L147
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L140
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L132
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
Backend lint: backend/src/device-token-service.ts#L116
Raw SQL queries must live in backend/src/repositories/ — add or extend a repository method instead
src/__tests__/openapi-validation.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/integration.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/governance-lifecycle.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/config.test.ts > CurrencyConfigLoader > load() > should validate currency code format: api/src/__tests__/config.test.ts#L129
AssertionError: expected [Function] to throw error including 'Currency code must contain only upper…' but got 'Currency configuration error: Configu…' Expected: "Currency code must contain only uppercase letters" Received: "Currency configuration error: Configuration validation failed: Currency code must conform to ISO 4217 format (exactly 3 uppercase letters)" ❯ src/__tests__/config.test.ts:129:35
src/__tests__/auth.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/auth-security.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/anchors.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
src/__tests__/agents.test.ts: api/src/services/receiptGenerator.ts#L6
Error: Cannot find package 'pdfkit' imported from '/home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts' ❯ src/services/receiptGenerator.ts:6:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' } Caused by: Caused by: Error: Failed to load url pdfkit (resolved id: pdfkit) in /home/runner/work/SwiftRemit/SwiftRemit/api/src/services/receiptGenerator.ts. Does the file exist? ❯ loadAndTransform ../node_modules/vite/dist/node/chunks/dep-Dm0c1Wj2.js:35835:17
Unhandled error: api/src/services/sep24.ts#L134
Error: SEP-24 poll timeout after 500ms for tx sep24-tx-001 ❯ Sep24Client.pollUntilComplete src/services/sep24.ts:134:11 This error originated in "src/__tests__/sep24.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. The latest test that might've caused the error is "throws timeout when polling exceeds deadline". It might mean one of the following: - The error was thrown, while Vitest was running this test. - If the error occurred after the test had been completed, this was the last documented test before it was thrown.
Frontend lint
Process completed with exit code 1.
Frontend lint: frontend/src/components/WalletConnection.tsx#L129
Definition for rule 'react-hooks/exhaustive-deps' was not found
Frontend lint: frontend/src/components/AnchorSelector.tsx#L85
Definition for rule 'react-hooks/exhaustive-deps' was not found
Frontend typecheck
Type '{ availableBalance: number; onComplete: Mock<Procedure>; onCancel: Mock<Procedure>; }' is not assignable to type 'IntrinsicAttributes & SendMoneyFlowProps'.
Frontend typecheck
Type '{ availableBalance: number; onCancel: Mock<Procedure>; }' is not assignable to type 'IntrinsicAttributes & SendMoneyFlowProps'.
Frontend typecheck
Type '{ availableBalance: number; }' is not assignable to type 'IntrinsicAttributes & SendMoneyFlowProps'.
Frontend typecheck
'React' is declared but its value is never read.
Frontend typecheck
Module '"../components/CorridorAnalytics"' has no exported member 'CorridorMetrics'. Did you mean to use 'import CorridorMetrics from "../components/CorridorAnalytics"' instead?
Frontend typecheck
Module '"../components/CorridorAnalytics"' has no exported member 'CorridorAnalytics'. Did you mean to use 'import CorridorAnalytics from "../components/CorridorAnalytics"' instead?
Frontend typecheck
'React' is declared but its value is never read.
Frontend typecheck
Module '"../components/AgentPanel"' has no exported member 'Agent'. Did you mean to use 'import Agent from "../components/AgentPanel"' instead?
Frontend typecheck
Module '"../components/AgentPanel"' has no exported member 'AgentPanel'. Did you mean to use 'import AgentPanel from "../components/AgentPanel"' instead?
Frontend typecheck
'React' is declared but its value is never read.
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > jumps to first with Home key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L276
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-yl1i2n9jj-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-yl1i2n9jj" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-yl1i2n9jj-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-yl1i2n9jj-label" class="anchor-dropdown-menu" id="anchor-listbox-yl1i2n9jj" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-yl1i2n9jj-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-yl1i2n9jj-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > returns focus to trigger after Escape: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L257
Error: expect(element).toHaveFocus() Expected element with focus: <button aria-controls="anchor-listbox-rr8s6xgtu" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-rr8s6xgtu-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> Received element with focus: <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-rr8s6xgtu-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-rr8s6xgtu" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-rr8s6xgtu-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-rr8s6xgtu-label" class="anchor-dropdown-menu" id="anchor-listbox-rr8s6xgtu" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-rr8s6xgtu-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span>
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > closes with Escape key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L239
Error: expect(element).not.toBeInTheDocument() expected document not to contain element, found <div aria-labelledby="anchor-listbox-0az1sayh1-label" class="anchor-dropdown-menu" id="anchor-listbox-0az1sayh1" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-0az1sayh1-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-0az1sayh1-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor Two </div> <div class="anchor-option-domain" > anchor2.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $20.00 - $20,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 2-3 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="2" id="anchor-listbox-0az1sayh1-option-2" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor Three <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor3.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.2% </span> </div> <div class="detail-row" > <span class="detail-label" >
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > selects with Enter key: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L221
AssertionError: expected "spy" to be called with arguments: [ { id: 'anchor-2', …(10) } ] Number of calls: 0 Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-0y2lvip2i-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-0y2lvip2i" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-0y2lvip2i-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-0y2lvip2i-label" class="anchor-dropdown-menu" id="anchor-listbox-0y2lvip2i" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-0y2lvip2i-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-0y2lvip2i-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div cla
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > navigates up with ArrowUp: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L194
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-a48egly1e-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-a48egly1e" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-a48egly1e-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-a48egly1e-label" class="anchor-dropdown-menu" id="anchor-listbox-a48egly1e" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-a48egly1e-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-a48egly1e-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelectorKeyboard.test.tsx > AnchorSelector Keyboard Navigation > Keyboard Navigation > navigates down with ArrowDown: frontend/src/components/__tests__/AnchorSelectorKeyboard.test.tsx#L174
Error: expect(element).toHaveClass("focused") Expected the element to have class: focused Received: anchor-option Ignored nodes: comments, script, style <html> <head /> <body> <div> <div class="anchor-selector" > <label class="anchor-label" id="anchor-listbox-hpb5tgso7-label" > Select Anchor Provider </label> <div class="anchor-dropdown" > <button aria-controls="anchor-listbox-hpb5tgso7" aria-expanded="true" aria-haspopup="listbox" aria-labelledby="anchor-listbox-hpb5tgso7-label" class="anchor-dropdown-trigger open" > <span class="placeholder" > Choose an anchor provider... </span> <span aria-hidden="true" class="dropdown-arrow" > ▲ </span> </button> <div aria-labelledby="anchor-listbox-hpb5tgso7-label" class="anchor-dropdown-menu" id="anchor-listbox-hpb5tgso7" role="listbox" tabindex="-1" > <input aria-label="Search anchor providers" class="anchor-search-input" placeholder="Search anchors..." type="search" value="" /> <div aria-selected="false" class="anchor-option focused" data-index="0" id="anchor-listbox-hpb5tgso7-option-0" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div class="anchor-option-name" > Anchor One <span aria-label="Verified" class="verified-badge" > ✓ </span> </div> <div class="anchor-option-domain" > anchor1.com </div> </div> </div> <div class="anchor-option-details" > <div class="detail-row" > <span class="detail-label" > Fees: </span> <span class="detail-value" > 1.5% </span> </div> <div class="detail-row" > <span class="detail-label" > Limits: </span> <span class="detail-value" > $10.00 - $10,000.00 </span> </div> <div class="detail-row" > <span class="detail-label" > Processing: </span> <span class="detail-value" > 1-2 days </span> </div> </div> </div> <div aria-selected="false" class="anchor-option " data-index="1" id="anchor-listbox-hpb5tgso7-option-1" role="option" > <div class="anchor-option-header" > <div class="anchor-option-info" > <div
src/components/__tests__/AnchorSelector.test.tsx > AnchorSelector > accessibility > has no a11y violations when dropdown is open: frontend/src/components/__tests__/AnchorSelector.test.tsx#L267
Error: expect(received).toHaveNoViolations(expected) Expected the HTML found at $('#anchor-listbox-intgqexv4') to have no violations: <div class="anchor-dropdown-menu" role="listbox" id="anchor-listbox-intgqexv4" aria-labelledby="anchor-listbox-intgqexv4-label" tabindex="-1"> Received: "Certain ARIA roles must contain particular children (aria-required-children)" Fix any of the following: Element has children which are not allowed: input[aria-label] You can find more information on this issue here: https://dequeuniversity.com/rules/axe/4.9/aria-required-children?application=axeAPI ❯ src/components/__tests__/AnchorSelector.test.tsx:267:23
src/components/__tests__/AdminTwoFactorAuth.test.tsx > Issue #897: 2FA Settings Page for Admin Users > should allow enabling/disabling 2FA from settings: frontend/src/components/__tests__/AdminTwoFactorAuth.test.tsx#L381
AssertionError: expected true to be false // Object.is equality - Expected + Received - false + true ❯ src/components/__tests__/AdminTwoFactorAuth.test.tsx:381:28
src/__tests__/TransactionHistory.snap.test.tsx > TransactionHistory snapshots > renders loading skeleton: frontend/src/components/TransactionHistory.tsx#L252
TypeError: Cannot read properties of undefined (reading 'map') ❯ src/components/TransactionHistory.tsx:252:43 ❯ mountMemo node_modules/react-dom/cjs/react-dom.development.js:16406:19 ❯ Object.useMemo node_modules/react-dom/cjs/react-dom.development.js:16851:16 ❯ useMemo node_modules/react/cjs/react.development.js:1650:21 ❯ TransactionHistory src/components/TransactionHistory.tsx:251:25 ❯ renderWithHooks node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork node_modules/react-dom/cjs/react-dom.development.js:21626:16 ❯ beginWork$1 node_modules/react-dom/cjs/react-dom.development.js:27465:14 ❯ performUnitOfWork node_modules/react-dom/cjs/react-dom.development.js:26599:12
Unhandled error: frontend/src/utils/a11y.tsx#L17
TypeError: mainContent.scrollIntoView is not a function ❯ onClick src/utils/a11y.tsx:17:23 ❯ HTMLUnknownElement.callCallback node_modules/react-dom/cjs/react-dom.development.js:4164:14 ❯ HTMLUnknownElement.callTheUserObjectsOperation ../node_modules/jsdom/lib/generated/idl/EventListener.js:26:30 ❯ innerInvokeEventListeners ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:360:16 ❯ invokeEventListeners ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:296:3 ❯ HTMLUnknownElementImpl._dispatch ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:243:9 ❯ HTMLUnknownElementImpl.dispatchEvent ../node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:114:17 ❯ HTMLUnknownElement.dispatchEvent ../node_modules/jsdom/lib/generated/idl/EventTarget.js:241:34 ❯ Object.invokeGuardedCallbackDev node_modules/react-dom/cjs/react-dom.development.js:4213:16 ❯ invokeGuardedCallback node_modules/react-dom/cjs/react-dom.development.js:4277:31 This error originated in "src/utils/__tests__/a11y.test.tsx" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. The latest test that might've caused the error is "should focus main content on click". It might mean one of the following: - The error was thrown, while Vitest was running this test. - If the error occurred after the test had been completed, this was the last documented test before it was thrown.
Rust fmt
Process completed with exit code 1.
src/__tests__/api-key-rate-limit.test.ts > API key rate limiting > includes X-RateLimit-* headers in responses: backend/src/api.ts#L95
TypeError: fxRateCache.setMetricsObserver is not a function ❯ src/api.ts:95:13 ❯ src/__tests__/api-key-rate-limit.test.ts:129:17
src/__tests__/api-key-management.test.ts > API Key Management > API Key Lifecycle > should complete full key lifecycle: backend/src/__tests__/api-key-management.test.ts#L191
AssertionError: expected 400 to be 201 // Object.is equality - Expected + Received - 201 + 400 ❯ src/__tests__/api-key-management.test.ts:191:37
src/__tests__/api-key-management.test.ts > API Key Management > DELETE /api/developers/keys/:key_id > should only allow user to revoke their own keys: backend/src/__tests__/api-key-management.test.ts#L179
AssertionError: expected 500 to be 403 // Object.is equality - Expected + Received - 403 + 500 ❯ src/__tests__/api-key-management.test.ts:179:37
src/__tests__/api-key-management.test.ts > API Key Management > DELETE /api/developers/keys/:key_id > should return 404 for non-existent key: backend/src/__tests__/api-key-management.test.ts#L158
AssertionError: expected 500 to be 404 // Object.is equality - Expected + Received - 404 + 500 ❯ src/__tests__/api-key-management.test.ts:158:31
src/__tests__/api-key-management.test.ts > API Key Management > DELETE /api/developers/keys/:key_id > should revoke an API key: backend/src/__tests__/api-key-management.test.ts#L150
AssertionError: expected 500 to be 204 // Object.is equality - Expected + Received - 204 + 500 ❯ src/__tests__/api-key-management.test.ts:150:37
src/__tests__/api-key-management.test.ts > API Key Management > GET /api/developers/keys > should not return secrets in list response: backend/src/__tests__/api-key-management.test.ts#L122
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ src/__tests__/api-key-management.test.ts:122:31
src/__tests__/api-key-management.test.ts > API Key Management > GET /api/developers/keys > should list active API keys: backend/src/__tests__/api-key-management.test.ts#L107
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ src/__tests__/api-key-management.test.ts:107:31
src/__tests__/api-key-management.test.ts > API Key Management > POST /api/developers/keys > should hash the key at rest: backend/src/__tests__/api-key-management.test.ts#L55
AssertionError: expected 400 to be 201 // Object.is equality - Expected + Received - 201 + 400 ❯ src/__tests__/api-key-management.test.ts:55:31
src/__tests__/api-key-management.test.ts > API Key Management > POST /api/developers/keys > should create an API key: backend/src/__tests__/api-key-management.test.ts#L39
AssertionError: expected 400 to be 201 // Object.is equality - Expected + Received - 201 + 400 ❯ src/__tests__/api-key-management.test.ts:39:31
src/__tests__/agent-kyc.test.ts: backend/src/api.ts#L95
TypeError: fxRateCache.setMetricsObserver is not a function ❯ src/api.ts:95:13 ❯ src/__tests__/agent-kyc.test.ts:94:1
Rust tests
Process completed with exit code 101.
CI
Process completed with exit code 1.
Rust clippy
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
API typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Mobile tests + coverage (≥ 70%)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Mobile tests + coverage (≥ 70%)
No files were found with the provided path: mobile/test-results/. No artifacts will be uploaded.
SDK contract-surface coverage
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
API tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Helm chart lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, azure/setup-helm@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
SDK browser bundle size (warn > 100 KB gzip)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
SDK browser bundle size (warn > 100 KB gzip)
Browser bundle not found at dist/browser/index.mjs
API lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend coverage (vitest >= 95%)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Rust fmt
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Rust tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/