diff options
Diffstat (limited to 'cli/tests/workers_test.ts')
-rw-r--r-- | cli/tests/workers_test.ts | 170 |
1 files changed, 95 insertions, 75 deletions
diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts index 370b3cd1a..84eeabf12 100644 --- a/cli/tests/workers_test.ts +++ b/cli/tests/workers_test.ts @@ -27,87 +27,107 @@ export function createResolvable<T>(): Resolvable<T> { return Object.assign(promise, methods!) as Resolvable<T>; } -Deno.test(async function workersBasic(): Promise<void> { - const promise = createResolvable(); - const jsWorker = new Worker("../tests/subdir/test_worker.js", { - type: "module", - name: "jsWorker" - }); - const tsWorker = new Worker("../tests/subdir/test_worker.ts", { - type: "module", - name: "tsWorker" - }); - - tsWorker.onmessage = (e): void => { - assertEquals(e.data, "Hello World"); - promise.resolve(); - }; +Deno.test({ + name: "workersBasic", + // FIXME(bartlomieju): + disableOpSanitizer: true, + fn: async function(): Promise<void> { + const promise = createResolvable(); + const jsWorker = new Worker("../tests/subdir/test_worker.js", { + type: "module", + name: "jsWorker" + }); + const tsWorker = new Worker("../tests/subdir/test_worker.ts", { + type: "module", + name: "tsWorker" + }); + + tsWorker.onmessage = (e): void => { + assertEquals(e.data, "Hello World"); + promise.resolve(); + }; + + jsWorker.onmessage = (e): void => { + assertEquals(e.data, "Hello World"); + tsWorker.postMessage("Hello World"); + }; + + jsWorker.onerror = (e: Event): void => { + e.preventDefault(); + jsWorker.postMessage("Hello World"); + }; - jsWorker.onmessage = (e): void => { - assertEquals(e.data, "Hello World"); - tsWorker.postMessage("Hello World"); - }; - - jsWorker.onerror = (e: Event): void => { - e.preventDefault(); jsWorker.postMessage("Hello World"); - }; - - jsWorker.postMessage("Hello World"); - await promise; + await promise; + } }); -Deno.test(async function nestedWorker(): Promise<void> { - const promise = createResolvable(); - - const nestedWorker = new Worker("../tests/subdir/nested_worker.js", { - type: "module", - name: "nested" - }); - - nestedWorker.onmessage = (e): void => { - assert(e.data.type !== "error"); - promise.resolve(); - }; - - nestedWorker.postMessage("Hello World"); - await promise; +Deno.test({ + name: "nestedWorker", + // FIXME(bartlomieju): + disableOpSanitizer: true, + fn: async function(): Promise<void> { + const promise = createResolvable(); + + const nestedWorker = new Worker("../tests/subdir/nested_worker.js", { + type: "module", + name: "nested" + }); + + nestedWorker.onmessage = (e): void => { + assert(e.data.type !== "error"); + promise.resolve(); + }; + + nestedWorker.postMessage("Hello World"); + await promise; + } }); -Deno.test(async function workerThrowsWhenExecuting(): Promise<void> { - const promise = createResolvable(); - const throwingWorker = new Worker("../tests/subdir/throwing_worker.js", { - type: "module" - }); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - throwingWorker.onerror = (e: any): void => { - e.preventDefault(); - assert(/Uncaught Error: Thrown error/.test(e.message)); - promise.resolve(); - }; - - await promise; +Deno.test({ + name: "workerThrowsWhenExecuting", + // FIXME(bartlomieju): + disableOpSanitizer: true, + fn: async function(): Promise<void> { + const promise = createResolvable(); + const throwingWorker = new Worker("../tests/subdir/throwing_worker.js", { + type: "module" + }); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + throwingWorker.onerror = (e: any): void => { + e.preventDefault(); + assert(/Uncaught Error: Thrown error/.test(e.message)); + promise.resolve(); + }; + + await promise; + } }); -Deno.test(async function workerCanUseFetch(): Promise<void> { - const promise = createResolvable(); - - const fetchingWorker = new Worker("../tests/subdir/fetching_worker.js", { - type: "module" - }); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - fetchingWorker.onerror = (e: any): void => { - e.preventDefault(); - promise.reject(e.message); - }; - - // Defer promise.resolve() to allow worker to shut down - fetchingWorker.onmessage = (e): void => { - assert(e.data === "Done!"); - promise.resolve(); - }; - - await promise; +Deno.test({ + name: "workerCanUseFetch", + // FIXME(bartlomieju): + disableOpSanitizer: true, + fn: async function(): Promise<void> { + const promise = createResolvable(); + + const fetchingWorker = new Worker("../tests/subdir/fetching_worker.js", { + type: "module" + }); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + fetchingWorker.onerror = (e: any): void => { + e.preventDefault(); + promise.reject(e.message); + }; + + // Defer promise.resolve() to allow worker to shut down + fetchingWorker.onmessage = (e): void => { + assert(e.data === "Done!"); + promise.resolve(); + }; + + await promise; + } }); |