'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); // Regression tests for https://github.com/nodejs/node/issues/40693 const assert = require('assert'); const fixtures = require('../common/fixtures'); const tls = require('tls'); const { AsyncLocalStorage } = require('async_hooks'); const options = { cert: fixtures.readKey('rsa_cert.crt'), key: fixtures.readKey('rsa_private.pem'), rejectUnauthorized: false, }; tls .createServer(options, (socket) => { socket.write('Hello, world!'); socket.pipe(socket); }) .listen(0, function() { const asyncLocalStorage = new AsyncLocalStorage(); const store = { val: 'abcd' }; asyncLocalStorage.run(store, () => { const client = tls.connect({ port: this.address().port, ...options }); client.on('data', () => { assert.deepStrictEqual(asyncLocalStorage.getStore(), store); client.end(); this.close(); }); }); });