mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
test: refactor test-http-information-processing
Replace magic numbers with constant. Use for loop for repeated code. Reduce console logging. Remove unneeded countdown module use. PR-URL: https://github.com/nodejs/node/pull/32547 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
@@ -2,22 +2,21 @@
|
||||
require('../common');
|
||||
const assert = require('assert');
|
||||
const http = require('http');
|
||||
const Countdown = require('../common/countdown');
|
||||
|
||||
const test_res_body = 'other stuff!\n';
|
||||
const countdown = new Countdown(3, () => server.close());
|
||||
const testResBody = 'other stuff!\n';
|
||||
const kMessageCount = 2;
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
console.error('Server sending informational message #1...');
|
||||
res.writeProcessing();
|
||||
console.error('Server sending informational message #2...');
|
||||
res.writeProcessing();
|
||||
for (let i = 0; i < kMessageCount; i++) {
|
||||
console.error(`Server sending informational message #${i}...`);
|
||||
res.writeProcessing();
|
||||
}
|
||||
console.error('Server sending full response...');
|
||||
res.writeHead(200, {
|
||||
'Content-Type': 'text/plain',
|
||||
'ABCD': '1'
|
||||
});
|
||||
res.end(test_res_body);
|
||||
res.end(testResBody);
|
||||
});
|
||||
|
||||
server.listen(0, function() {
|
||||
@@ -29,24 +28,22 @@ server.listen(0, function() {
|
||||
console.error('Client sending request...');
|
||||
|
||||
let body = '';
|
||||
let infoCount = 0;
|
||||
|
||||
req.on('information', function(res) {
|
||||
console.error('Client got 102 Processing...');
|
||||
countdown.dec();
|
||||
});
|
||||
req.on('information', () => { infoCount++; });
|
||||
|
||||
req.on('response', function(res) {
|
||||
// Check that all 102 Processing received before full response received.
|
||||
assert.strictEqual(countdown.remaining, 1);
|
||||
assert.strictEqual(infoCount, kMessageCount);
|
||||
assert.strictEqual(res.statusCode, 200,
|
||||
`Final status code was ${res.statusCode}, not 200.`);
|
||||
res.setEncoding('utf8');
|
||||
res.on('data', function(chunk) { body += chunk; });
|
||||
res.on('end', function() {
|
||||
console.error('Got full response.');
|
||||
assert.strictEqual(body, test_res_body);
|
||||
assert.strictEqual(body, testResBody);
|
||||
assert.ok('abcd' in res.headers);
|
||||
countdown.dec();
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user