mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
|
'use strict';
|
||
|
const common = require('../common');
|
||
|
const assert = require('assert');
|
||
|
const http = require('http');
|
||
|
const dc = require('diagnostics_channel');
|
||
|
|
||
|
const isOutgoingMessage = (object) => object instanceof http.OutgoingMessage;
|
||
|
const isIncomingMessage = (object) => object instanceof http.IncomingMessage;
|
||
|
|
||
|
dc.subscribe('http.server.response.created', common.mustCall(({
|
||
|
request,
|
||
|
response,
|
||
|
}) => {
|
||
|
assert.strictEqual(request.headers.foo, 'bar');
|
||
|
assert.strictEqual(response.getHeader('baz'), undefined);
|
||
|
assert.strictEqual(isIncomingMessage(request), true);
|
||
|
assert.strictEqual(isOutgoingMessage(response), true);
|
||
|
}));
|
||
|
|
||
|
dc.subscribe('http.server.response.finish', common.mustCall(({
|
||
|
request,
|
||
|
response,
|
||
|
}) => {
|
||
|
assert.strictEqual(request.headers.foo, 'bar');
|
||
|
assert.strictEqual(response.getHeader('baz'), 'bar');
|
||
|
assert.strictEqual(isIncomingMessage(request), true);
|
||
|
assert.strictEqual(isOutgoingMessage(response), true);
|
||
|
}));
|
||
|
|
||
|
const server = http.createServer(common.mustCall((_, res) => {
|
||
|
res.setHeader('baz', 'bar');
|
||
|
res.end('done');
|
||
|
}));
|
||
|
|
||
|
server.listen(() => {
|
||
|
const { port } = server.address();
|
||
|
http.get({
|
||
|
port,
|
||
|
headers: {
|
||
|
'foo': 'bar',
|
||
|
}
|
||
|
}, common.mustCall(() => {
|
||
|
server.close();
|
||
|
}));
|
||
|
});
|