const fixtureFile = await Deno.makeTempFile();
let prefix = "file://";
if (Deno.build.os == "windows") {
  prefix += "/";
}
const fixtureUrl = new URL(`${prefix}${fixtureFile}`);
let resolve;

let p = new Promise((res) => resolve = res);

await Deno.writeTextFile(fixtureUrl, `self.postMessage("hello");\n`);

const workerA = new Worker(fixtureUrl.href, { type: "module" });
workerA.onmessage = (msg) => {
  console.log(msg.data);
  resolve();
};

await p;
workerA.terminate();

p = new Promise((res) => resolve = res);

await Deno.writeTextFile(fixtureUrl, `self.postMessage("goodbye");\n`);

const workerB = new Worker(fixtureUrl.href, { type: "module" });
workerB.onmessage = (msg) => {
  console.log(msg.data);
  resolve();
};

await p;
workerB.terminate();