Native gate: open the web chat sidebar before typing into it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+13
−0
test/browser/native.mjs+13 −0
diff --git a/test/browser/native.mjs b/test/browser/native.mjs| index d98bd65..9ade7d2 100644 |
| --- a/test/browser/native.mjs |
| +++ b/test/browser/native.mjs |
| @@ -214,6 +214,7 @@ try { |
| // unchanged tree, then passed alone and in a full run). Each direction |
| // gets three tries; a line that never arrives still fails. |
| for (let attempt = 1; ; attempt++) { |
| + await openWebChat(page); |
| await page.locator('[data-chat-text]').fill('browser chat probe'); |
| await page.locator('[data-chat-send]').click(); |
| try { |
| @@ -377,6 +378,7 @@ try { |
| await plain.close(); |
| console.log('PASS native sharing, web Share and Copy, and scriptless sharing preserve the invitation'); |
| for (let n = 1; n <= 12; n++) { |
| + await openWebChat(page); |
| await page.locator('[data-chat-text]').fill(`Incoming browser message ${n}`); |
| await page.locator('[data-chat-send]').click(); |
| await wait(() => sample?.receivedChatCount === n + 1, `native receives browser message ${n}`); |
| @@ -412,3 +414,14 @@ try { |
| native?.kill('SIGTERM'); |
| await browser.close(); |
| } |
| + |
| +// The web call's chat is a sidebar over the picture that starts closed |
| +// (the call window, 2026-09-28): open it, as a person would, before |
| +// typing into it. |
| +async function openWebChat(page) { |
| + await page.locator('#toggle-chat:not([hidden])').waitFor({ timeout: 10000 }); |
| + if ((await page.locator('#toggle-chat').getAttribute('aria-expanded')) !== 'true') { |
| + await page.locator('#toggle-chat').click(); |
| + } |
| + await page.locator('[data-chat-text]').waitFor({ state: 'visible', timeout: 5000 }); |
| +} |