e2e #54
e2e.yml
on: schedule
Playwright E2E journeys
12m 3s
Annotations
10 errors, 1 warning, and 2 notices
|
[chromium] › e2e/funding-gate.spec.ts:93:1 › balance lookup failure blocks an offramp:
apps/dashboard/e2e/funding-gate.spec.ts#L101
5) [chromium] › e2e/funding-gate.spec.ts:93:1 › balance lookup failure blocks an offramp ─────────
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toContainText(expected) failed
Locator: getByRole('alert')
Expected substring: "Could not verify your USDC balance on Polygon"
Received string: "Could not verify your USDC balance on Base.Retry balance check"
Timeout: 20000ms
Call log:
- Expect "toContainText" with timeout 20000ms
- waiting for getByRole('alert')
42 × locator resolved to <div role="alert" class="flex items-start gap-2 text-destructive text-sm">…</div>
- unexpected value "Could not verify your USDC balance on Base.Retry balance check"
99 | await page.locator("#token-amount").fill("54.054054");
100 |
> 101 | await expect(page.getByRole("alert")).toContainText("Could not verify your USDC balance on Polygon", {
| ^
102 | timeout: 20_000
103 | });
104 | await expect(page.getByRole("button", { name: /^Send/ })).toBeDisabled();
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:101:41
|
|
[chromium] › e2e/funding-gate.spec.ts:93:1 › balance lookup failure blocks an offramp:
apps/dashboard/e2e/funding-gate.spec.ts#L101
5) [chromium] › e2e/funding-gate.spec.ts:93:1 › balance lookup failure blocks an offramp ─────────
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toContainText(expected) failed
Locator: getByRole('alert')
Expected substring: "Could not verify your USDC balance on Polygon"
Received string: "Could not verify your USDC balance on Base.Retry balance check"
Timeout: 20000ms
Call log:
- Expect "toContainText" with timeout 20000ms
- waiting for getByRole('alert')
44 × locator resolved to <div role="alert" class="flex items-start gap-2 text-destructive text-sm">…</div>
- unexpected value "Could not verify your USDC balance on Base.Retry balance check"
99 | await page.locator("#token-amount").fill("54.054054");
100 |
> 101 | await expect(page.getByRole("alert")).toContainText("Could not verify your USDC balance on Polygon", {
| ^
102 | timeout: 20_000
103 | });
104 | await expect(page.getByRole("button", { name: /^Send/ })).toBeDisabled();
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:101:41
|
|
[chromium] › e2e/funding-gate.spec.ts:74:1 › registration rechecks balance after quote refresh:
apps/dashboard/e2e/funding-gate.spec.ts#L84
4) [chromium] › e2e/funding-gate.spec.ts:74:1 › registration rechecks balance after quote refresh
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeEnabled() failed
Locator: getByRole('button', { name: /^Send/ })
Expected: enabled
Received: disabled
Timeout: 20000ms
Call log:
- Expect "toBeEnabled" with timeout 20000ms
- waiting for getByRole('button', { name: /^Send/ })
43 × locator resolved to <button disabled type="button" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm transition-[color,background-color,border-color,box-shadow,opacity,scale] active:scale-[0.96] motion-reduce:active:scale-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 outline-none aria-in…>…</button>
- unexpected value "disabled"
82 | await page.locator("#token-amount").fill("54.054054");
83 | const sendButton = page.getByRole("button", { name: /^Send/ });
> 84 | await expect(sendButton).toBeEnabled({ timeout: 20_000 });
| ^
85 | await sendButton.click();
86 |
87 | await expect(page.getByText("Could not start transfer", { exact: true })).toBeVisible({ timeout: 20_000 });
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:84:28
|
|
[chromium] › e2e/funding-gate.spec.ts:74:1 › registration rechecks balance after quote refresh:
apps/dashboard/e2e/funding-gate.spec.ts#L84
4) [chromium] › e2e/funding-gate.spec.ts:74:1 › registration rechecks balance after quote refresh
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeEnabled() failed
Locator: getByRole('button', { name: /^Send/ })
Expected: enabled
Received: disabled
Timeout: 20000ms
Call log:
- Expect "toBeEnabled" with timeout 20000ms
- waiting for getByRole('button', { name: /^Send/ })
44 × locator resolved to <button disabled type="button" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm transition-[color,background-color,border-color,box-shadow,opacity,scale] active:scale-[0.96] motion-reduce:active:scale-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 outline-none aria-in…>…</button>
- unexpected value "disabled"
82 | await page.locator("#token-amount").fill("54.054054");
83 | const sendButton = page.getByRole("button", { name: /^Send/ });
> 84 | await expect(sendButton).toBeEnabled({ timeout: 20_000 });
| ^
85 | await sendButton.click();
86 |
87 | await expect(page.getByText("Could not start transfer", { exact: true })).toBeVisible({ timeout: 20_000 });
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:84:28
|
|
[chromium] › e2e/funding-gate.spec.ts:49:1 › balance check follows the selected payin network:
apps/dashboard/e2e/funding-gate.spec.ts#L62
3) [chromium] › e2e/funding-gate.spec.ts:49:1 › balance check follows the selected payin network, not the wallet chain
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeEnabled() failed
Locator: getByRole('button', { name: /^Send/ })
Expected: enabled
Received: disabled
Timeout: 20000ms
Call log:
- Expect "toBeEnabled" with timeout 20000ms
- waiting for getByRole('button', { name: /^Send/ })
43 × locator resolved to <button disabled type="button" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm transition-[color,background-color,border-color,box-shadow,opacity,scale] active:scale-[0.96] motion-reduce:active:scale-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 outline-none aria-in…>…</button>
- unexpected value "disabled"
60 | await page.locator("#token-amount").fill("54.054054");
61 | const sendButton = page.getByRole("button", { name: /^Send/ });
> 62 | await expect(sendButton).toBeEnabled({ timeout: 20_000 });
| ^
63 |
64 | await page.getByRole("combobox").filter({ hasText: "Polygon" }).click();
65 | await page.getByRole("option", { exact: true, name: "Arbitrum One" }).click();
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:62:28
|
|
[chromium] › e2e/funding-gate.spec.ts:49:1 › balance check follows the selected payin network:
apps/dashboard/e2e/funding-gate.spec.ts#L62
3) [chromium] › e2e/funding-gate.spec.ts:49:1 › balance check follows the selected payin network, not the wallet chain
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeEnabled() failed
Locator: getByRole('button', { name: /^Send/ })
Expected: enabled
Received: disabled
Timeout: 20000ms
Call log:
- Expect "toBeEnabled" with timeout 20000ms
- waiting for getByRole('button', { name: /^Send/ })
44 × locator resolved to <button disabled type="button" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm transition-[color,background-color,border-color,box-shadow,opacity,scale] active:scale-[0.96] motion-reduce:active:scale-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 outline-none aria-in…>…</button>
- unexpected value "disabled"
60 | await page.locator("#token-amount").fill("54.054054");
61 | const sendButton = page.getByRole("button", { name: /^Send/ });
> 62 | await expect(sendButton).toBeEnabled({ timeout: 20_000 });
| ^
63 |
64 | await page.getByRole("combobox").filter({ hasText: "Polygon" }).click();
65 | await page.getByRole("option", { exact: true, name: "Arbitrum One" }).click();
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:62:28
|
|
[chromium] › e2e/funding-gate.spec.ts:35:1 › insufficient selected-network USDC balance blocks an offramp:
apps/dashboard/e2e/funding-gate.spec.ts#L43
2) [chromium] › e2e/funding-gate.spec.ts:35:1 › insufficient selected-network USDC balance blocks an offramp
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByText('Available: 50 USDC on Polygon', { exact: true })
Expected: visible
Timeout: 20000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 20000ms
- waiting for getByText('Available: 50 USDC on Polygon', { exact: true })
41 | await page.locator("#token-amount").fill("54.054054");
42 |
> 43 | await expect(page.getByText("Available: 50 USDC on Polygon", { exact: true })).toBeVisible({ timeout: 20_000 });
| ^
44 | await expect(page.getByText(/Insufficient USDC balance.*54\.054 USDC on Polygon/)).toBeVisible();
45 | await expect(page.getByRole("button", { name: /^Send/ })).toBeDisabled();
46 | expect(backend.registerRequests).toHaveLength(0);
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:43:82
|
|
[chromium] › e2e/funding-gate.spec.ts:35:1 › insufficient selected-network USDC balance blocks an offramp:
apps/dashboard/e2e/funding-gate.spec.ts#L43
2) [chromium] › e2e/funding-gate.spec.ts:35:1 › insufficient selected-network USDC balance blocks an offramp
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByText('Available: 50 USDC on Polygon', { exact: true })
Expected: visible
Timeout: 20000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 20000ms
- waiting for getByText('Available: 50 USDC on Polygon', { exact: true })
41 | await page.locator("#token-amount").fill("54.054054");
42 |
> 43 | await expect(page.getByText("Available: 50 USDC on Polygon", { exact: true })).toBeVisible({ timeout: 20_000 });
| ^
44 | await expect(page.getByText(/Insufficient USDC balance.*54\.054 USDC on Polygon/)).toBeVisible();
45 | await expect(page.getByRole("button", { name: /^Send/ })).toBeDisabled();
46 | expect(backend.registerRequests).toHaveLength(0);
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:43:82
|
|
[chromium] › e2e/funding-gate.spec.ts:11:1 › funding panel offers connected-wallet submission only:
apps/dashboard/e2e/funding-gate.spec.ts#L26
1) [chromium] › e2e/funding-gate.spec.ts:11:1 › funding panel offers connected-wallet submission only
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByText('Available: 1,000 USDC on Polygon', { exact: true })
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByText('Available: 1,000 USDC on Polygon', { exact: true })
24 |
25 | await expect(page.getByText("Send crypto")).toHaveCount(0);
> 26 | await expect(page.getByText("Available: 1,000 USDC on Polygon", { exact: true })).toBeVisible();
| ^
27 | await expect(page.getByRole("button", { name: /^Send/ })).toBeEnabled();
28 | await expect(page.getByText(/reach out to/)).toHaveCount(0);
29 | expect(backend.balanceRequests.at(-1)).toMatchObject({ network: "polygon-mainnet" });
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:26:85
|
|
[chromium] › e2e/funding-gate.spec.ts:11:1 › funding panel offers connected-wallet submission only:
apps/dashboard/e2e/funding-gate.spec.ts#L26
1) [chromium] › e2e/funding-gate.spec.ts:11:1 › funding panel offers connected-wallet submission only
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: expect(locator).toBeVisible() failed
Locator: getByText('Available: 1,000 USDC on Polygon', { exact: true })
Expected: visible
Timeout: 5000ms
Error: element(s) not found
Call log:
- Expect "toBeVisible" with timeout 5000ms
- waiting for getByText('Available: 1,000 USDC on Polygon', { exact: true })
24 |
25 | await expect(page.getByText("Send crypto")).toHaveCount(0);
> 26 | await expect(page.getByText("Available: 1,000 USDC on Polygon", { exact: true })).toBeVisible();
| ^
27 | await expect(page.getByRole("button", { name: /^Send/ })).toBeEnabled();
28 | await expect(page.getByText(/reach out to/)).toHaveCount(0);
29 | expect(backend.balanceRequests.at(-1)).toMatchObject({ network: "polygon-mainnet" });
at /home/runner/work/vortex/vortex/apps/dashboard/e2e/funding-gate.spec.ts:26:85
|
|
Playwright E2E journeys
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v3, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
🎭 Playwright Run Summary
10 failed
[chromium] › e2e/funding-gate.spec.ts:11:1 › funding panel offers connected-wallet submission only
[chromium] › e2e/funding-gate.spec.ts:35:1 › insufficient selected-network USDC balance blocks an offramp
[chromium] › e2e/funding-gate.spec.ts:49:1 › balance check follows the selected payin network, not the wallet chain
[chromium] › e2e/funding-gate.spec.ts:74:1 › registration rechecks balance after quote refresh ─
[chromium] › e2e/funding-gate.spec.ts:93:1 › balance lookup failure blocks an offramp ──────────
[chromium] › e2e/funding-gate.spec.ts:109:1 › balance gate checks the selected ERC-20 rather than another held token
[chromium] › e2e/funding-gate.spec.ts:127:1 › native POL uses the portfolio native balance ─────
[chromium] › e2e/transfer-mxn-journey.spec.ts:40:1 › SELL MXN transfer: quote, register, ephemeral presigning, wallet broadcast, start, tracking
[chromium] › e2e/transfer-mxn-journey.spec.ts:127:1 › SELL refreshes a near-expiry quote before registration
[chromium] › e2e/transfer-mxn-journey.spec.ts:166:1 › SELL MXN transfer: choosing a different payout account registers against that account
62 passed (9.4m)
|
|
🎭 Playwright Run Summary
15 passed (1.6m)
|