aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bun.js/http.exports.js17
-rw-r--r--test/js/node/http/node-http.test.ts5
2 files changed, 15 insertions, 7 deletions
diff --git a/src/bun.js/http.exports.js b/src/bun.js/http.exports.js
index c05d70d9a..d9c44836b 100644
--- a/src/bun.js/http.exports.js
+++ b/src/bun.js/http.exports.js
@@ -56,6 +56,12 @@ function isValidTLSArray(obj) {
}
}
+function getHeader(headers, name) {
+ if (!headers) return;
+ const result = headers.get(name);
+ return result == null ? undefined : result;
+}
+
var FakeSocket = class Socket extends Duplex {
bytesRead = 0;
bytesWritten = 0;
@@ -858,8 +864,7 @@ export class OutgoingMessage extends Writable {
flushHeaders() {}
getHeader(name) {
- if (!this.#headers) return;
- return this.#headers.get(name);
+ return getHeader(this.#headers, name);
}
getHeaders() {
@@ -1092,13 +1097,13 @@ export class ServerResponse extends Writable {
flushHeaders() {}
getHeader(name) {
- if (!this.#headers) return;
- return this.#headers.get(name);
+ return getHeader(this.#headers, name);
}
getHeaders() {
- if (!this.#headers) return kEmptyObject;
- return this.#headers.toJSON();
+ var headers = this.#headers;
+ if (!headers) return kEmptyObject;
+ return headers.toJSON();
}
getHeaderNames() {
diff --git a/test/js/node/http/node-http.test.ts b/test/js/node/http/node-http.test.ts
index 726453217..b1910a1f7 100644
--- a/test/js/node/http/node-http.test.ts
+++ b/test/js/node/http/node-http.test.ts
@@ -398,8 +398,11 @@ describe("node:http", () => {
});
res.on("error", err => done(err));
});
- req.end();
expect(req.getHeader("X-Test")).toBe("test");
+ // node returns undefined
+ // Headers returns null
+ expect(req.getHeader("X-Not-Exists")).toBe(undefined);
+ req.end();
});
});