P15a: hosting a shared session requires a signed-in GM

- The Host control now checks cloudUsername(): when the GM isn't signed in it shows
  "🔒 Sign in to host" (→ Settings) instead of "📡 Host". Players still join as guests.
- Realtime e2e: the GM marks itself signed in before hosting.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 17:35:54 +02:00
parent d6eda054bf
commit 9b5c63f23c
3 changed files with 15 additions and 2 deletions
+2 -1
View File
@@ -12,8 +12,9 @@ test('a player claims a seat and manages their character; edits round-trip to th
const gmCtx = await browser.newContext();
const playerCtx = await browser.newContext();
// GM: sample campaign + host.
// GM: sample campaign + host (hosting requires a signed-in GM).
const gm = await fresh(gmCtx);
await gm.evaluate(() => localStorage.setItem('ttrpg-cloud-user', 'GM'));
gm.on('dialog', (d) => d.dismiss()); // optional-password prompt
await gm.getByLabel('Settings').click();
await gm.getByRole('button', { name: 'Load sample campaign' }).click();