- Shipped
- September 9, 2026 at 3:34 AM UTC
- Author
- Kamo
- Commit
- 80c87c1
The companion to the MediaService endpoint test, at the second door. The chat games menu had the entitlement hole independently of the nav icon — it asked for the RIGHT and never for the app — and `gameCatalogue.test.ts` proves the rule while proving nothing about whether this component passes it. Verified by mutation rather than asserted. With `canPlay` reverted to the pre-fix `checkRight(right) || isOrganizationOwner`: gameCatalogue.test.ts green ← the rule is fine; nobody asked it chatGamesMenuGating.test.tsx 2 failed Six cases through the rendered component, asserting on the trigger the menu omits entirely when it has nothing to offer: an organization with no game offers none however the rights fell; ownership does not conjure one; the owner of an ENTITLED organization is still offered a game they hold no grant for; the app alone is not permission; and the participant-count rule still composes on top — an org with only chess offers nothing to a group of three, while one with Hold'em does. The next-intl mock is a hoisted, referentially stable translator carrying `.rich`. A fresh function per render re-fires any effect depending on it and hangs the file at act(), which reads as a broken component rather than a broken harness. No production code changes.