1'use strict';
2// Flags: --expose-internals
3
4require('../common');
5const assert = require('assert');
6
7const kOutHeaders = require('internal/http').kOutHeaders;
8const http = require('http');
9const OutgoingMessage = http.OutgoingMessage;
10
11{
12  const outgoingMessage = new OutgoingMessage();
13  outgoingMessage._header = {};
14  assert.throws(
15    () => outgoingMessage._renderHeaders(),
16    {
17      code: 'ERR_HTTP_HEADERS_SENT',
18      name: 'Error',
19      message: 'Cannot render headers after they are sent to the client'
20    }
21  );
22}
23
24{
25  const outgoingMessage = new OutgoingMessage();
26  outgoingMessage[kOutHeaders] = null;
27  const result = outgoingMessage._renderHeaders();
28  assert.deepStrictEqual(result, {});
29}
30
31
32{
33  const outgoingMessage = new OutgoingMessage();
34  outgoingMessage[kOutHeaders] = {};
35  const result = outgoingMessage._renderHeaders();
36  assert.deepStrictEqual(result, {});
37}
38
39{
40  const outgoingMessage = new OutgoingMessage();
41  outgoingMessage[kOutHeaders] = {
42    host: ['host', 'nodejs.org'],
43    origin: ['Origin', 'localhost']
44  };
45  const result = outgoingMessage._renderHeaders();
46  assert.deepStrictEqual(result, {
47    host: 'nodejs.org',
48    Origin: 'localhost'
49  });
50}
51