Skip to content

Add browser-rendered multi-client cursor soak #241

Description

@spencerc99

Context

PR #206 added smoke:partykit:presence-cursor, which soaks the generic presence transport with Node/WebSocket clients. That is useful for fanout and connection stability, but it does not open real browser pages or validate cursor DOM rendering, style updates, proximity logic, page console health, or browser-side performance.

Goal

Add a browser-level regression smoke that proves real PlayHTML pages can observe many cursor peers without dropping rendered cursors or surfacing runtime errors.

Suggested approach

  • Use Playwright against a built local site or a staging URL.
  • Open one or more real browser pages as observers.
  • Drive additional synthetic presence peers through the generic presence WebSocket so the browser sees realistic fanout without requiring 20 full browser contexts.
  • Move observer cursors enough to exercise local publish, remote render, visibility/style refresh, and proximity paths.
  • Collect browser console errors, page errors, cursor DOM counts, observed peer counts, and disconnect/protocol errors.

Acceptance criteria

  • The smoke fails if browser observers see fewer remote cursor elements than expected after settle.
  • The smoke fails on PlayHTML console errors, uncaught page errors, presence protocol errors, or unexpected socket closes.
  • The smoke can run against local build and staging by configuration.
  • smoke-tests/README.md documents how to run it and how it differs from smoke:partykit:presence-cursor.

Related: PR #206.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions