Skip to content

feat(frontend): add live-region announcements to ToastProvider #655

feat(frontend): add live-region announcements to ToastProvider

feat(frontend): add live-region announcements to ToastProvider #655

Triggered via pull request July 26, 2026 16:07
Status Failure
Total duration 12m 53s
Artifacts 1

frontend.yml

on: pull_request
Build & Type Check
3m 24s
Build & Type Check
Playwright E2E Tests
9m 25s
Playwright E2E Tests
Fit to window
Zoom out
Zoom in

Annotations

10 errors, 2 warnings, and 1 notice
Playwright E2E Tests
Process completed with exit code 1.
[webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
3) [webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
3) [webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
3) [webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
2) [firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
2) [firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
2) [firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button disabled type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
1) [chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
1) [chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
[chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details: Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts#L208
1) [chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details Error: expect(locator).toBeVisible() failed Locator: getByText(/confirm/i) Expected: visible Error: strict mode violation: getByText(/confirm/i) resolved to 2 elements: 1) <div role="status" class="sr-only" aria-live="polite" aria-atomic="true">Payout confirmation step.</div> aka getByText('Payout confirmation step.') 2) <button disabled type="button" class="theme-primary-button flex-1 flex items-center justify-center gap-2 disabled:bg-blue-800 disabled:opacity-70 text-white py-3 rounded-lg font-medium transition-colors">Confirm Payout</button> aka getByRole('button', { name: 'Confirm Payout' }) Call log: - Expect "toBeVisible" with timeout 5000ms - waiting for getByText(/confirm/i) 206 | 207 | test('shows confirm payout screen with quote details', async ({ page }) => { > 208 | await expect(page.getByText(/confirm/i)).toBeVisible(); | ^ 209 | }); 210 | 211 | test('payout note field accepts text up to 160 characters', async ({ page }) => { at /home/runner/work/Stellar-Dex-Chat/Stellar-Dex-Chat/Dechat/dex_with_fiat_frontend/tests/e2e/bank-details-modal.spec.ts:208:46
Build & Type Check
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, pnpm/action-setup@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Playwright E2E 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, actions/upload-artifact@v4, pnpm/action-setup@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
3 failed [chromium] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details [firefox] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details [webkit] › tests/e2e/bank-details-modal.spec.ts:207:7 › BankDetailsModal — Step 3: confirm payout › shows confirm payout screen with quote details 4 skipped 260 passed (6.7m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report Expired
2.3 MB
sha256:bf19c59b2d9d34436db1d11d86de36e423894fe69b89f54ac8d912ad05a4c6dc