(container: HTMLElement)
| 104 | } |
| 105 | |
| 106 | async function waitForSendModeMenuTrigger(container: HTMLElement): Promise<HTMLButtonElement> { |
| 107 | return waitFor( |
| 108 | () => { |
| 109 | const buttons = Array.from( |
| 110 | container.querySelectorAll('button[aria-label="Send message"]') |
| 111 | ) as HTMLButtonElement[]; |
| 112 | const trigger = [...buttons] |
| 113 | .reverse() |
| 114 | .find((button) => button.getAttribute("aria-haspopup") === "menu" && !button.disabled); |
| 115 | if (!trigger) { |
| 116 | throw new Error("Send mode menu trigger not ready"); |
| 117 | } |
| 118 | return trigger; |
| 119 | }, |
| 120 | { timeout: 30_000 } |
| 121 | ); |
| 122 | } |
| 123 | |
| 124 | async function openSendModeMenu(container: HTMLElement): Promise<void> { |
| 125 | const trigger = await waitForSendModeMenuTrigger(container); |
no test coverage detected