• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 'use strict';
2 // Flags: --expose-internals
3 
4 require('../common');
5 const assert = require('assert');
6 
7 const kOutHeaders = require('internal/http').kOutHeaders;
8 const http = require('http');
9 const 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