node/test/parallel/test-http-set-header-chain.js
pooja d.p dedd0612f0 http: enable call chaining with setHeader()
Make `response.setHeader` return the response object itself
so that multiple header setting can be chained.

Fixes: https://github.com/nodejs/node/issues/33148

PR-URL: https://github.com/nodejs/node/pull/35924
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2020-11-30 05:14:30 -08:00

30 lines
857 B
JavaScript

'use strict';
const common = require('../common');
const http = require('http');
const assert = require('assert');
const expected = {
'__proto__': null,
'testheader1': 'foo',
'testheader2': 'bar',
'testheader3': 'xyz'
};
const server = http.createServer(common.mustCall((req, res) => {
let retval = res.setHeader('testheader1', 'foo');
// Test that the setHeader returns the same response object.
assert.strictEqual(retval, res);
retval = res.setHeader('testheader2', 'bar').setHeader('testheader3', 'xyz');
// Test that chaining works for setHeader.
assert.deepStrictEqual(res.getHeaders(), expected);
res.end('ok');
}));
server.listen(0, () => {
http.get({ port: server.address().port }, common.mustCall((res) => {
res.on('data', () => {});
res.on('end', common.mustCall(() => {
server.close();
}));
}));
});