Tests/LibWeb: Prevent flake with iframe loading in gamepad-iframe.html

If `sendMessageAndWait` sends a message before the iframe is setup and
listening we would wait indefinitely making the test timeout.
This commit is contained in:
Lorenz A
2025-11-15 02:37:30 +01:00
committed by Jelle Raaijmakers
parent 0664e9fbf5
commit 5dbb857c40
Notes: github-actions[bot] 2025-11-17 16:22:39 +00:00

View File

@@ -30,14 +30,22 @@
const sendMessageAndWait = (message) => {
return new Promise((resolve) => {
window.onmessage = ({ data }) => {
const listener = ({ data }) => {
window.removeEventListener('message', listener);
resolve(data);
};
window.addEventListener('message', listener);
testIframe.contentWindow.postMessage(message, "*");
});
};
// wait for the iframe to be ready
await new Promise((resolve) => {
testIframe.addEventListener('load', resolve);
if (testIframe.contentDocument.readyState === 'complete')
resolve();
});
const gamepad = internals.connectVirtualGamepad();
await handleSDLInputEvents();
listenForGamepadConnected();