kirschbaum-development/pest-plugin-realtime
A Pest plugin that brings realtime broadcasting assertions to your Laravel tests, letting you verify events are broadcast instantly over Reverb or Pusher. Write expressive expectations for channels, payloads, and event order without boilerplate setup.
Important caveat for all of the above: the package's own materials describe two different products — one as a realtime test-feedback streamer for Pest, the other as a realtime browser behavior/broadcast tester. Both are plausible and useful, but they support different decisions. Product sign-off should require the maintainers or our spike to establish which one this is before we let it influence roadmap or quality commitments.
Consider it when all of the following hold:
Event::fake() / Broadcast::fake() for the scenarios we care about — especially failures that mocks cannot catch, like dropped events and recovery.require-dev pilot, with pinning and a documented exit path.Look elsewhere (or build in-house) when:
Default posture: treat as an evaluation candidate, not a standard. Do not roll out team-wide before a measured flake rate exists.
To executives: This is a small, free, dev-only testing tool for one narrow problem — proving our live/realtime features actually work, including what happens when a connection drops. It never ships to customers and adds no production risk; removing it is one line in a config file. The reason to look at it is cost avoidance: realtime is where bugs are hardest to reproduce and where customers notice first. The reason to be cautious is maturity — pre-1.0, one star, no downstream users, and releases without meaningful notes, so we cannot judge upgrade risk from changelogs. Ask: approve a one-to-two-day, one-repo, non-blocking evaluation. Decision to scale comes back with a measured flake rate and CI cost, not an opinion.
To engineering leaders: Dev-only Pest plugin, auto-discovered, no build or deploy impact. The real cost is not the library — it is standing up a Reverb/Pusher-compatible service in CI with per-worker port isolation and clean teardown, and the flake risk of timing-sensitive assertions. Two findings to act on: (1) the project's own docs describe it inconsistently — as a realtime test-result streamer and as a realtime broadcast tester — so someone must confirm scope and read the v0.6.1→v0.6.2 diff before we commit; (2) we must prove a deliberately broken realtime path makes a test fail, otherwise we are buying false confidence. Pin exactly 0.6.2, spike 2–3 representative tests, run ~20 CI iterations, and keep new tests non-blocking until the flake profile is known.
To the team: If you already write Pest tests on a Laravel app with broadcasting, this is a cheap way to cover dropped events and reconnection — the scenarios where mocks lie. Expect a day of setup, mostly CI plumbing, then near-zero per-developer cost. It is an experiment with a named owner and an explicit exit plan, not a new standard.
How can I help you explore Laravel packages today?