diff options
Diffstat (limited to 'test/js/node/async_hooks/async_hooks.node.test.ts')
-rw-r--r-- | test/js/node/async_hooks/async_hooks.node.test.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/js/node/async_hooks/async_hooks.node.test.ts b/test/js/node/async_hooks/async_hooks.node.test.ts new file mode 100644 index 000000000..107c58a8c --- /dev/null +++ b/test/js/node/async_hooks/async_hooks.node.test.ts @@ -0,0 +1,34 @@ +import { AsyncLocalStorage } from "async_hooks"; +import assert from "assert"; + +test("node async_hooks.AsyncLocalStorage enable disable", async () => { + const asyncLocalStorage = new AsyncLocalStorage(); + + asyncLocalStorage.run(new Map(), () => { + asyncLocalStorage.getStore().set("foo", "bar"); + process.nextTick(() => { + assert.strictEqual(asyncLocalStorage.getStore().get("foo"), "bar"); + process.nextTick(() => { + assert.strictEqual(asyncLocalStorage.getStore(), undefined); + }); + + asyncLocalStorage.disable(); + assert.strictEqual(asyncLocalStorage.getStore(), undefined); + + // Calls to exit() should not mess with enabled status + asyncLocalStorage.exit(() => { + assert.strictEqual(asyncLocalStorage.getStore(), undefined); + }); + assert.strictEqual(asyncLocalStorage.getStore(), undefined); + + process.nextTick(() => { + assert.strictEqual(asyncLocalStorage.getStore(), undefined); + asyncLocalStorage.run(new Map().set("bar", "foo"), () => { + assert.strictEqual(asyncLocalStorage.getStore().get("bar"), "foo"); + + done(); + }); + }); + }); + }); +}); |