diff options
author | Asher Gomez <ashersaupingomez@gmail.com> | 2023-11-22 22:11:20 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-22 12:11:20 +0100 |
commit | 616354e76cba0be8af20a0ffefeacfcf6101bafc (patch) | |
tree | c832c81dd93498e196840c8d59c0a4ab76396d07 /ext/node/polyfills/testing.ts | |
parent | 0ffcb46e0f60110c07e21151db6066f5a1b5f710 (diff) |
refactor: replace `deferred()` from `std/async` with `Promise.withResolvers()` (#21234)
Closes #21041
---------
Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
Diffstat (limited to 'ext/node/polyfills/testing.ts')
-rw-r--r-- | ext/node/polyfills/testing.ts | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/ext/node/polyfills/testing.ts b/ext/node/polyfills/testing.ts index 192a0cc71..83e8f6f0b 100644 --- a/ext/node/polyfills/testing.ts +++ b/ext/node/polyfills/testing.ts @@ -5,23 +5,6 @@ import { notImplemented, warnNotImplemented } from "ext:deno_node/_utils.ts"; -export function deferred() { - let methods; - const promise = new Promise((resolve, reject) => { - methods = { - async resolve(value) { - await value; - resolve(value); - }, - // deno-lint-ignore no-explicit-any - reject(reason?: any) { - reject(reason); - }, - }; - }); - return Object.assign(promise, methods); -} - export function run() { notImplemented("test.run"); } @@ -124,13 +107,13 @@ function prepareOptions(name, options, fn, overrides) { return { fn, options: finalOptions, name }; } -function wrapTestFn(fn, promise) { +function wrapTestFn(fn, resolve) { return async function (t) { const nodeTestContext = new NodeTestContext(t); try { await fn(nodeTestContext); } finally { - promise.resolve(undefined); + resolve(); } }; } @@ -138,11 +121,11 @@ function wrapTestFn(fn, promise) { function prepareDenoTest(name, options, fn, overrides) { const prepared = prepareOptions(name, options, fn, overrides); - const promise = deferred(); + const { promise, resolve } = Promise.withResolvers(); const denoTestOptions = { name: prepared.name, - fn: wrapTestFn(prepared.fn, promise), + fn: wrapTestFn(prepared.fn, resolve), only: prepared.options.only, ignore: prepared.options.todo || prepared.options.skip, }; |