diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-06-14 23:07:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-15 00:07:02 +0200 |
commit | 78b12a43b307c3405cd63cf4612517210330b487 (patch) | |
tree | ef9a6a258f13f7d4151e8152ed9702572126c165 /tests/node_compat/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js | |
parent | 184a85eaecbe7055b5b3969391f49c4723ac44fb (diff) |
fix(ext/node): better support for `node:diagnostics_channel` module (#24088)
Closes https://github.com/denoland/deno/issues/24060
Diffstat (limited to 'tests/node_compat/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js')
-rw-r--r-- | tests/node_compat/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js b/tests/node_compat/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js new file mode 100644 index 000000000..1160e6464 --- /dev/null +++ b/tests/node_compat/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js @@ -0,0 +1,36 @@ +// deno-fmt-ignore-file +// deno-lint-ignore-file + +// Copyright Joyent and Node contributors. All rights reserved. MIT license. +// Taken from Node 18.12.1 +// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually. + +'use strict'; + +const common = require('../common'); +const { AsyncLocalStorage } = require('async_hooks'); +const dc = require('diagnostics_channel'); +const assert = require('assert'); + +const channel = dc.tracingChannel('test'); +const store = new AsyncLocalStorage(); + +const firstContext = { foo: 'bar' }; +const secondContext = { baz: 'buz' }; + +channel.start.bindStore(store, common.mustCall(() => { + return firstContext; +})); + +channel.asyncStart.bindStore(store, common.mustCall(() => { + return secondContext; +})); + +assert.strictEqual(store.getStore(), undefined); +channel.traceCallback(common.mustCall((cb) => { + assert.deepStrictEqual(store.getStore(), firstContext); + setImmediate(cb); +}), 0, {}, null, common.mustCall(() => { + assert.deepStrictEqual(store.getStore(), secondContext); +})); +assert.strictEqual(store.getStore(), undefined); |