| 'use strict'; |
| require('../common'); |
| const assert = require('assert'); |
| const { AsyncLocalStorage } = require('async_hooks'); |
| |
| 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'); |
| }); |
| }); |
| }); |
| }); |