Compare commits

...

3 Commits

Author SHA1 Message Date
Jarred-Sumner
4212c5dbd0 bun run prettier 2025-05-30 00:28:18 +00:00
Jarred-Sumner
541a5b069b Sync Node.js tests with upstream 2025-05-30 00:27:07 +00:00
Jarred Sumner
4a9feadcec test(http): add renderHeaders test 2025-05-29 17:25:58 -07:00
2 changed files with 70 additions and 0 deletions

View File

@@ -320,6 +320,26 @@ const OutgoingMessagePrototype = {
this[headersSymbol] = new Headers(value);
},
_renderHeaders() {
if ((this._header !== undefined && this._header !== null) || this[headerStateSymbol] === NodeHTTPHeaderState.sent) {
throw $ERR_HTTP_HEADERS_SENT("render");
}
const out = this[kOutHeaders];
if (out == null) return {};
const keys = ObjectKeys(out);
if (keys.length === 0) return {};
const ret = { __proto__: null } as any;
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const arr = out[key];
ret[arr[0]] = arr[1];
}
return ret;
},
addTrailers(headers) {
this._trailer = "";
const keys = Object.keys(headers);

View File

@@ -0,0 +1,50 @@
'use strict';
// Flags: --expose-internals
require('../common');
const assert = require('assert');
const kOutHeaders = require('internal/http').kOutHeaders;
const http = require('http');
const OutgoingMessage = http.OutgoingMessage;
{
const outgoingMessage = new OutgoingMessage();
outgoingMessage._header = {};
assert.throws(
() => outgoingMessage._renderHeaders(),
{
code: 'ERR_HTTP_HEADERS_SENT',
name: 'Error',
message: 'Cannot render headers after they are sent to the client'
}
);
}
{
const outgoingMessage = new OutgoingMessage();
outgoingMessage[kOutHeaders] = null;
const result = outgoingMessage._renderHeaders();
assert.deepStrictEqual(result, {});
}
{
const outgoingMessage = new OutgoingMessage();
outgoingMessage[kOutHeaders] = {};
const result = outgoingMessage._renderHeaders();
assert.deepStrictEqual(result, {});
}
{
const outgoingMessage = new OutgoingMessage();
outgoingMessage[kOutHeaders] = {
host: ['host', 'nodejs.org'],
origin: ['Origin', 'localhost']
};
const result = outgoingMessage._renderHeaders();
assert.deepStrictEqual(result, {
host: 'nodejs.org',
Origin: 'localhost'
});
}