1'use strict';
2
3const common = require('../common');
4const { createServer, get } = require('http');
5const assert = require('assert');
6
7const server = createServer(common.mustCall((req, res) => {
8  res.writeHead(200);
9  res.write('Part of res.');
10}));
11
12function onUncaught(error) {
13  assert.strictEqual(error.message, 'Destroy test');
14  server.close();
15}
16
17process.on('uncaughtException', common.mustCall(onUncaught));
18
19server.listen(0, () => {
20  get({
21    port: server.address().port
22  }, common.mustCall((res) => {
23    const err = new Error('Destroy test');
24    assert.strictEqual(res.errored, null);
25    res.destroy(err);
26    assert.strictEqual(res.closed, false);
27    assert.strictEqual(res.errored, err);
28    res.on('close', () => {
29      assert.strictEqual(res.closed, true);
30    });
31  }));
32});
33