| // Flags: --async-context-frame |
| 'use strict'; |
| |
| require('../common'); |
| |
| const { |
| AsyncLocalStorage, |
| } = require('async_hooks'); |
| |
| const assert = require('assert'); |
| |
| // ============================================================================ |
| // The defaultValue option |
| const als1 = new AsyncLocalStorage(); |
| assert.strictEqual(als1.getStore(), undefined); |
| |
| const als2 = new AsyncLocalStorage({ defaultValue: 'default' }); |
| assert.strictEqual(als2.getStore(), 'default'); |
| |
| const als3 = new AsyncLocalStorage({ defaultValue: 42 }); |
| assert.strictEqual(als3.getStore(), 42); |
| |
| const als4 = new AsyncLocalStorage({ defaultValue: null }); |
| assert.strictEqual(als4.getStore(), null); |
| |
| assert.throws(() => new AsyncLocalStorage(null), { |
| code: 'ERR_INVALID_ARG_TYPE', |
| }); |
| |
| // ============================================================================ |
| // The name option |
| |
| const als5 = new AsyncLocalStorage({ name: 'test' }); |
| assert.strictEqual(als5.name, 'test'); |
| |
| const als6 = new AsyncLocalStorage(); |
| assert.strictEqual(als6.name, ''); |