summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreu Botella <abb@randomunok.com>2021-09-13 13:47:17 +0200
committerGitHub <noreply@github.com>2021-09-13 13:47:17 +0200
commit93290487eb6dc3d7c6bf304c1a7c13e4139e4c40 (patch)
tree718bc7d0a668985cc765a6c9abbe12c6505173c5
parentd0b5ff6db9ec42f645210de7c4806bad385bdfaf (diff)
fix: worker_message_before_close was flaky (#12019)
-rw-r--r--cli/tests/testdata/worker_message_before_close.js23
-rw-r--r--cli/tests/testdata/worker_message_before_close.js.out5
2 files changed, 19 insertions, 9 deletions
diff --git a/cli/tests/testdata/worker_message_before_close.js b/cli/tests/testdata/worker_message_before_close.js
index 6a9149af1..8ad35b3fc 100644
--- a/cli/tests/testdata/worker_message_before_close.js
+++ b/cli/tests/testdata/worker_message_before_close.js
@@ -1,16 +1,29 @@
+let messagesReceived = 0;
+
for (let i = 0; i < 4; i++) {
const worker = new Worker(
new URL("./workers/message_before_close.js", import.meta.url).href,
{ type: "module", name: String(i) },
);
- worker.addEventListener("message", (message) => {
- // Only print responses after all reception logs.
- setTimeout(() => {
- console.log("response from worker %d received", message.data);
- }, 500);
+ worker.addEventListener("message", () => {
+ messagesReceived += 1;
+
+ if (messagesReceived == 4) {
+ console.log("received all 4 responses from the workers");
+ }
});
+
worker.postMessage(i);
}
+globalThis.addEventListener("unload", () => {
+ if (messagesReceived !== 4) {
+ console.log(
+ "received only %d responses from the workers",
+ messagesReceived,
+ );
+ }
+});
+
export {};
diff --git a/cli/tests/testdata/worker_message_before_close.js.out b/cli/tests/testdata/worker_message_before_close.js.out
index f1cc558a2..02a50ea95 100644
--- a/cli/tests/testdata/worker_message_before_close.js.out
+++ b/cli/tests/testdata/worker_message_before_close.js.out
@@ -2,7 +2,4 @@ message received in worker 0
message received in worker 1
message received in worker 2
message received in worker 3
-response from worker 0 received
-response from worker 1 received
-response from worker 2 received
-response from worker 3 received
+received all 4 responses from the workers