| 'use strict'; |
| |
| const common = require('../common'); |
| if (!common.hasCrypto) |
| common.skip('missing crypto'); |
| |
| const assert = require('assert'); |
| const events = require('events'); |
| const fixtures = require('../common/fixtures'); |
| const { createServer, connect } = require('tls'); |
| const cert = fixtures.readKey('rsa_cert.crt'); |
| const key = fixtures.readKey('rsa_private.pem'); |
| |
| events.captureRejections = true; |
| |
| const server = createServer({ cert, key }, common.mustCall(async (sock) => { |
| server.close(); |
| |
| const _err = new Error('kaboom'); |
| sock.on('error', common.mustCall((err) => { |
| assert.strictEqual(err, _err); |
| })); |
| throw _err; |
| })); |
| |
| server.listen(0, common.mustCall(() => { |
| const sock = connect({ |
| port: server.address().port, |
| host: server.address().host, |
| rejectUnauthorized: false |
| }); |
| |
| sock.on('close', common.mustCall()); |
| })); |