KLKLine FrontendDashboard · Preview · Embed shell

F060 · browser QA

Playwright E2E foundation

Browser/embed QA case matrix for plain HTML, Next.js, WordPress-like host, multi-widget, mobile and failure fixtures.

Automated browser QA

Blocked

pnpm/playwright install required.

Command

pnpm test:e2e

Config

playwright.config.ts

Plain HTML

WARNING

/embed/host-smoke/plain-html

  • Open static host harness.
  • Verify iframe mounts and sends ready event.

Next.js host

WARNING

/embed/host-smoke/nextjs

  • Run dashboard dev server.
  • Open host smoke route.
  • Confirm hydration does not remount duplicate iframes.

WordPress-like host

WARNING

/embed/host-smoke/wordpress-like

  • Load content wrapper harness.
  • Confirm script after HTML still auto-mounts.

Mobile portrait

WARNING

viewport 390x844

  • Open /preview and /embed/demo at mobile width.
  • Check safe-area spacing and page scroll.

Mobile landscape

WARNING

viewport 844x390

  • Rotate landscape.
  • Confirm resize postMessage adjusts iframe height.

Multi-widget page

PASS

/embed/multi

  • Open /embed/multi.
  • Confirm each iframe has unique data-kline-widget-id.

Unauthorized domain

WARNING

backend fixture BOOTSTRAP_UNAUTHORIZED_DOMAIN

  • Start backend fixture.
  • Use an unverified Origin/Referer.
  • Confirm controlled iframe error and no retry loop.

Provider failure

WARNING

backend fixture BARS_NETWORK_ERROR

  • Force provider error fixture.
  • Confirm error/stale UI label.

Stale/delayed/live label

WARNING

/admin/data-status-transparency

  • Open data status transparency route.
  • Confirm live/delayed/stale labels are visually distinct.
PASS

Playwright config

playwright.config.ts is added as the future browser QA entrypoint.

PASS

Core route list

E2E cases cover /, /preview, /embed/demo, /embed/multi and /admin/widgets/new.

BLOCKED

Playwright dependency install

Sandbox cannot run pnpm install; install browsers/deps locally before using pnpm test:e2e.

WARNING

Screenshot baseline

Screenshot baseline policy is specified but not captured in this environment.