Files
buzz/crates
Logan Johnson c37d6b8eb6 test(relay): cover system channels in the workflows API and push matcher (#8509)
🤖
## Summary
Test-only. This adds end-to-end coverage for the last two system channel
read paths that had none. It changes no behavior.

A system channel is a channel type the relay leaves out of ordinary
reads. A client sees one only when it names the channel or opts in. The
system channels spec lists every read path that must follow this rule.
The Postgres end-to-end tests already covered subscriptions, counts,
search, the HTTP bridge and membership notices, but not these two:

- **Workflows API.** A workflow names its channel, so reading a workflow
in a system channel follows ordinary channel access. Members can read
it. Outsiders can read it only when the channel is open. For a private
one, an outsider gets 404, the same answer as for a missing workflow.
- **Push notifications.** This is database-backed matcher coverage: the
test stores real channel rows, memberships and push leases, loads the
matcher's context from the database, and runs the production matcher. It
builds the match batch directly, so it does not cover the outbox or
gateway delivery. A member's push filter that names no channel gets a
wake for a message in an ordinary channel, but not for a message in a
system channel. A member's filter that names the system channel by `#h`
gets a wake for that channel only (the rule since #8517). A non-member's
filter gets neither.

### Related issue
Part of the system channels spec (risks section: end-to-end cases for
the workflows API and push). Rebased on #8507 and #8517, which made push
follow the read rule: a system channel pushes only to a member's filter
that names it by `#h`. No duplicate PR found.

### Testing
- Both tests pass against local Postgres and Redis on this branch.
- Each test fails when the behavior it covers is removed: without the
named-channel check in the workflows API, a member gets 404 for its own
system channel's workflow; if the push matcher lets a filter that does
not name a system channel match it, the member's broad lease also wakes;
if the matcher never pushes system channels, the named lease does not
wake.
- clippy (`--tests -D warnings`) and fmt pass.

---------

Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
2026-10-21 13:09:45 -04:00
..