// 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);