| 'use strict'; |
| require('../common'); |
| const assert = require('assert'); |
| const { AsyncLocalStorage } = require('async_hooks'); |
| |
| const asyncLocalStorage = new AsyncLocalStorage(); |
| const outer = {}; |
| const inner = {}; |
| |
| function testInner() { |
| assert.strictEqual(asyncLocalStorage.getStore(), outer); |
| |
| asyncLocalStorage.run(inner, () => { |
| assert.strictEqual(asyncLocalStorage.getStore(), inner); |
| }); |
| assert.strictEqual(asyncLocalStorage.getStore(), outer); |
| |
| asyncLocalStorage.exit(() => { |
| assert.strictEqual(asyncLocalStorage.getStore(), undefined); |
| }); |
| assert.strictEqual(asyncLocalStorage.getStore(), outer); |
| } |
| |
| asyncLocalStorage.run(outer, testInner); |
| assert.strictEqual(asyncLocalStorage.getStore(), undefined); |