Skip to content

[#250] Frontend: Improve Wallet Connection UX with auto-reconnect #182

[#250] Frontend: Improve Wallet Connection UX with auto-reconnect

[#250] Frontend: Improve Wallet Connection UX with auto-reconnect #182

Status Failure
Total duration 10m 55s
Artifacts 2

e2e.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

10 errors, 1 warning, and 1 notice
[chromium] › e2e/deposit-withdraw.spec.ts:30:3 › Deposit panel no wallet › strategy info panel shows exchange rate and network fee: frontend/e2e/deposit-withdraw.spec.ts#L32
4) [chromium] › e2e/deposit-withdraw.spec.ts:30:3 › Deposit panel no wallet › strategy info panel shows exchange rate and network fee Error: expect(locator).toBeVisible() failed Locator: getByText('1 yvUSDC = 1.084 USDC') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('1 yvUSDC = 1.084 USDC') 30 | test('strategy info panel shows exchange rate and network fee', async ({ page }) => { 31 | await page.goto('/'); > 32 | await expect(page.getByText('1 yvUSDC = 1.084 USDC')).toBeVisible(); | ^ 33 | await expect(page.getByText('~0.00001 XLM')).toBeVisible(); 34 | await expect(page.getByText('BENJI Strategy')).toBeVisible(); 35 | }); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/deposit-withdraw.spec.ts:32:59
[chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics: frontend/e2e/dashboard-load.spec.ts#L67
3) [chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Project Analytics') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Project Analytics') 65 | await page.goto('/analytics'); 66 | > 67 | await expect(page.getByText('Project Analytics')).toBeVisible(); | ^ 68 | 69 | // TVL card 70 | await expect(page.getByText('Total Value Locked')).toBeVisible(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:67:55
[chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics: frontend/e2e/dashboard-load.spec.ts#L67
3) [chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Project Analytics') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Project Analytics') 65 | await page.goto('/analytics'); 66 | > 67 | await expect(page.getByText('Project Analytics')).toBeVisible(); | ^ 68 | 69 | // TVL card 70 | await expect(page.getByText('Total Value Locked')).toBeVisible(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:67:55
[chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics: frontend/e2e/dashboard-load.spec.ts#L67
3) [chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics Error: expect(locator).toBeVisible() failed Locator: getByText('Project Analytics') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Project Analytics') 65 | await page.goto('/analytics'); 66 | > 67 | await expect(page.getByText('Project Analytics')).toBeVisible(); | ^ 68 | 69 | // TVL card 70 | await expect(page.getByText('Total Value Locked')).toBeVisible(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:67:55
[chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes: frontend/e2e/dashboard-load.spec.ts#L51
2) [chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Project Analytics') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Project Analytics') 49 | await page.getByRole('link', { name: 'Analytics' }).click(); 50 | await expect(page).toHaveURL('/analytics'); > 51 | await expect(page.getByText('Project Analytics')).toBeVisible(); | ^ 52 | 53 | // Navigate to Portfolio 54 | await page.getByRole('link', { name: 'Portfolio' }).click(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:51:55
[chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes: frontend/e2e/dashboard-load.spec.ts#L51
2) [chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Project Analytics') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Project Analytics') 49 | await page.getByRole('link', { name: 'Analytics' }).click(); 50 | await expect(page).toHaveURL('/analytics'); > 51 | await expect(page.getByText('Project Analytics')).toBeVisible(); | ^ 52 | 53 | // Navigate to Portfolio 54 | await page.getByRole('link', { name: 'Portfolio' }).click(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:51:55
[chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes: frontend/e2e/dashboard-load.spec.ts#L51
2) [chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes Error: expect(locator).toBeVisible() failed Locator: getByText('Project Analytics') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Project Analytics') 49 | await page.getByRole('link', { name: 'Analytics' }).click(); 50 | await expect(page).toHaveURL('/analytics'); > 51 | await expect(page.getByText('Project Analytics')).toBeVisible(); | ^ 52 | 53 | // Navigate to Portfolio 54 | await page.getByRole('link', { name: 'Portfolio' }).click(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:51:55
[chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel: frontend/e2e/dashboard-load.spec.ts#L39
1) [chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.') 37 | await expect( 38 | page.getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.'), > 39 | ).toBeVisible(); | ^ 40 | 41 | // Connect button in navbar must be present 42 | await expect(page.getByRole('button', { name: /Connect Freighter/i })).toBeVisible(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:39:7
[chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel: frontend/e2e/dashboard-load.spec.ts#L39
1) [chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.') 37 | await expect( 38 | page.getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.'), > 39 | ).toBeVisible(); | ^ 40 | 41 | // Connect button in navbar must be present 42 | await expect(page.getByRole('button', { name: /Connect Freighter/i })).toBeVisible(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:39:7
[chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel: frontend/e2e/dashboard-load.spec.ts#L39
1) [chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel Error: expect(locator).toBeVisible() failed Locator: getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.') Expected: visible Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.') 37 | await expect( 38 | page.getByText('Please connect your Freighter wallet to deposit USDC and earn RWA yields.'), > 39 | ).toBeVisible(); | ^ 40 | 41 | // Connect button in navbar must be present 42 | await expect(page.getByRole('button', { name: /Connect Freighter/i })).toBeVisible(); at /home/runner/work/YieldVault-RWA/YieldVault-RWA/frontend/e2e/dashboard-load.spec.ts:39:7
Playwright E2E
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/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/
🎭 Playwright Run Summary
14 failed [chromium] › e2e/dashboard-load.spec.ts:33:3 › Dashboard load › shows wallet-not-connected overlay on the deposit panel [chromium] › e2e/dashboard-load.spec.ts:45:3 › Dashboard load › navbar links navigate to the correct routes [chromium] › e2e/dashboard-load.spec.ts:64:3 › Dashboard load › analytics page shows live vault metrics [chromium] › e2e/deposit-withdraw.spec.ts:30:3 › Deposit panel no wallet › strategy info panel shows exchange rate and network fee [chromium] › e2e/deposit-withdraw.spec.ts:56:3 › Deposit & Withdraw connected wallet › deposit tab is active by default and can switch to withdraw [chromium] › e2e/deposit-withdraw.spec.ts:70:3 › Deposit & Withdraw connected wallet › MAX button fills the amount input with the current balance [chromium] › e2e/deposit-withdraw.spec.ts:78:3 › Deposit & Withdraw connected wallet › performs a deposit and updates the balance [chromium] › e2e/deposit-withdraw.spec.ts:95:3 › Deposit & Withdraw connected wallet › performs a withdrawal and updates the balance [chromium] › e2e/portfolio.spec.ts:25:3 › Portfolio page authenticated › loads and displays portfolio holdings after wallet connects [chromium] › e2e/portfolio.spec.ts:34:3 › Portfolio page authenticated › displays correct total portfolio value [chromium] › e2e/portfolio.spec.ts:41:3 › Portfolio page authenticated › search filter narrows holdings results [chromium] › e2e/portfolio.spec.ts:54:3 › Portfolio page authenticated › clearing search restores all holdings [chromium] › e2e/portfolio.spec.ts:66:3 › Portfolio page authenticated › rows-per-page selector changes visible row count [chromium] › e2e/portfolio.spec.ts:80:3 › Portfolio page authenticated › column sort changes row order 8 passed (9.5m)

Artifacts

Produced during runtime
Name Size Digest
playwright-failure-artifacts Expired
101 MB
sha256:807a0dfab2295893b6283747892465bf25d5ec24011f7f8a5f545f1dd9b4028b
playwright-report Expired
97 MB
sha256:6c89e2c1f2a916ac439981c420302d4801425e06eff69fcf67f53d49bd24a2f9