diff options
author | Luca Casonato <hello@lcas.dev> | 2024-09-05 09:22:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-05 09:22:52 +0200 |
commit | 49e3ee010c7d4423fbab89bf12749235e156c9be (patch) | |
tree | 92185d6cf32a94ae4b241a23a64309bec3f92e59 /tests/unit_node/events_test.ts | |
parent | 17b5e98b822dc23407a0292dcf61e624fbf2a4b1 (diff) |
feat(ext/node): add abort helpers, process & streams fix (#25262)
This commit adds:
- `addAbortListener` in `node:events`
- `aborted` in `node:util`
- `execPath` and `execvArgs` named export from `node:process`
- `getDefaultHighWaterMark` from `node:stream`
The `execPath` is very hacky - because module namespaces can not have
real getters, `execPath` is an object with a `toString()` method that on
call returns the actual `execPath`, and replaces the `execPath` binding
with the string. This is done so that we don't require the `execPath`
permission on startup.
Diffstat (limited to 'tests/unit_node/events_test.ts')
-rw-r--r-- | tests/unit_node/events_test.ts | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/unit_node/events_test.ts b/tests/unit_node/events_test.ts index 1fc7ad1e3..82808d523 100644 --- a/tests/unit_node/events_test.ts +++ b/tests/unit_node/events_test.ts @@ -1,6 +1,7 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -import events, { EventEmitter } from "node:events"; +// @ts-expect-error: @types/node is outdated +import events, { addAbortListener, EventEmitter } from "node:events"; EventEmitter.captureRejections = true; @@ -34,3 +35,13 @@ Deno.test("eventemitter async resource", () => { // @ts-ignore: @types/node is outdated foo.emit("bar"); }); + +Deno.test("addAbortListener", async () => { + const { promise, resolve } = Promise.withResolvers<void>(); + const abortController = new AbortController(); + addAbortListener(abortController.signal, () => { + resolve(); + }); + abortController.abort(); + await promise; +}); |