Open dfbaskin opened 1 year ago
Since Karma is deprecated, does it make sense to move the tests over to Playwright?
As an example, this is what the tests/two-way-iframe.comlink.test.js test might look like:
tests/two-way-iframe.comlink.test.js
import { test } from "@playwright/test"; test.describe("Comlink across iframes", function () { test.beforeEach(async ({ page }) => { await page.goto("/"); await page.evaluate(async () => { this.ifr = document.createElement("iframe"); this.ifr.sandbox.add("allow-scripts", "allow-same-origin"); this.ifr.src = "/tests/fixtures/two-way-iframe.html"; document.body.appendChild(this.ifr); await new Promise((resolve) => (this.ifr.onload = resolve)); }); }); test.afterEach(async ({ page }) => { await page.evaluate(() => { this.ifr.remove(); }); }); test("can communicate both ways", async ({ page }) => { const { value, called } = await page.evaluate(async () => { const Comlink = await import("/dist/esm/comlink.mjs"); let called = false; const iframe = Comlink.windowEndpoint(this.ifr.contentWindow); Comlink.expose((a) => { called = true; return ++a; }, iframe); const proxy = Comlink.wrap(iframe); const value = await proxy(1, 3); return { value, called, }; }); test.expect(value).toEqual(5); test.expect(called).toEqual(true); }); });
If this move makes sense, I could submit a PR.
Would love to see this, if you're open to filing a PR!
Since Karma is deprecated, does it make sense to move the tests over to Playwright?
As an example, this is what the
tests/two-way-iframe.comlink.test.js
test might look like:If this move makes sense, I could submit a PR.