krishanchawla

playwright-typescript-framework

demo @ e17386d · 1 day ago · 2026-08-12 09:09 UTC
Assertion failure View CI run ↗
Why it failed
Three different stories in one run -- worth separating, same as the last real run on this repo: 1) Seeded, not real: "Cart management" failing on the line subtotal is this run's deliberate seed on the `demo` branch (the assertion was changed to expect unitPrice×4 instead of ×3 -- see the diff at commit e17386d). Not a product bug. 2) Real and now confirmed recurring: the axe-core WCAG 2 AA color-contrast violation on products/cart/checkout (the shared "~/qa-sandbox" breadcrumb, #6d68cf on #0a0a11, 4.25:1 vs. the 4.5:1 minimum) showed up again in this run -- same signatures as the last real triage of this repo, completely independent of anything seeded here. Still unfixed. 3) Real and new: Admin Panel records search doesn't filter at all -- searching "Priya" returns all 8 rows instead of the 1 matching row, consistently across retries (not a timing flake). First time this one's been seen.
Suggested fix
(1) No fix needed, it's a demo seed. (2) Darken the breadcrumb's text-accent token until #6d68cf-on-#0a0a11 clears 4.5:1 -- one shared component, fixes all three pages. (3) Check the admin records search handler -- the filter predicate doesn't appear to be wired to the table's data source at all, not just slow.

Failure signals (5)

Accessibility › products page has no serious/critical violations @regression
tests/ui/accessibility.spec.ts:31
Assertion failure seen 1× before
expect(violations, JSON.stringify(violations, null, 2)).toEqual([]);
Show raw stack trace / context
axe-core color-contrast violation: '~/qa-sandbox' breadcrumb text renders at #6d68cf on #0a0a11 (4.25:1) against the 4.5:1 WCAG 2 AA minimum. Recurring -- see history (2nd occurrence, first seen 2026-08-11).
source: raw-log
Accessibility › cart page has no serious/critical violations @regression
tests/ui/accessibility.spec.ts:45
Assertion failure seen 1× before
expect(violations, JSON.stringify(violations, null, 2)).toEqual([]);
Show raw stack trace / context
Same breadcrumb color-contrast violation as the products-page occurrence. Recurring -- see history (2nd occurrence).
source: raw-log
Accessibility › checkout page has no serious/critical violations @regression
tests/ui/accessibility.spec.ts:59
Assertion failure seen 1× before
expect(violations, JSON.stringify(violations, null, 2)).toEqual([]);
Show raw stack trace / context
Same breadcrumb color-contrast violation as the products-page occurrence. Recurring -- see history (2nd occurrence).
source: raw-log
Admin Panel records › search filters the table to matching records
tests/ui/admin-records.spec.ts:63
Assertion failure first time seen
expect(locator).toHaveCount(expected) failed
Show raw stack trace / context
Error: expect(locator).toHaveCount(expected) failed

Locator:  getByTestId('records-table').locator('[data-testid^="record-"]:visible')
Expected: 1
Received: 8
Timeout:  5000ms

Call log:
  - Expect "toHaveCount" with timeout 5000ms
  - waiting for getByTestId('records-table').locator('[data-testid^="record-"]:visible')
    14 × locator resolved to 8 elements
       - unexpected value "8"

  61 |       await authenticatedRecordsPage.search('Priya');
  62 |
> 63 |       await expect(authenticatedRecordsPage.rows).toHaveCount(1);
     |                                                   ^
  64 |       await expect(authenticatedRecordsPage.row('Priya Nair')).toBeVisible();
       at tests/ui/admin-records.spec.ts:63:51
source: junit-xml
Cart management › updating quantity recalculates the line subtotal and cart total
tests/ui/cart-management.spec.ts:42
Assertion failure first time seen
expect(locator).toHaveText(expected) failed
Show raw stack trace / context
Error: expect(locator).toHaveText(expected) failed

Locator:  getByTestId('cart-table').getByTestId(/^cart-line-/).filter({ hasText: 'Ergonomic Chair' }).locator('td').nth(2)
Expected: "$1316.00"
Received: "$987.00"

  40 |       const expectedSubtotal = formatPrice(product.unitPrice * 4); // DEMO: intentionally wrong, seeds ci-triage-mcp's demo branch
  41 |       await expect(cartPage.quantityInput(product.name)).toHaveValue('3');
> 42 |       await expect(cartPage.subtotalCell(product.name)).toHaveText(expectedSubtotal);
     |                                                         ^
  43 |       await expect(cartPage.total).toHaveText(expectedSubtotal);
source: junit-xml