mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
Add some HTTP tests
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
|
||||
const { createServer, get } = require('http');
|
||||
|
||||
const server = createServer(common.mustCall(function(req, res) {
|
||||
req.resume();
|
||||
|
||||
setTimeout(common.mustCall(() => {
|
||||
res.writeHead(204, { 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=1' });
|
||||
res.end();
|
||||
}), common.platformTimeout(1000));
|
||||
}));
|
||||
|
||||
server.listen(0, function() {
|
||||
const port = server.address().port;
|
||||
|
||||
get(`http://localhost:${port}`, common.mustCall((res) => {
|
||||
server.close();
|
||||
})).on('finish', common.mustCall(() => {
|
||||
setTimeout(common.mustCall(() => {
|
||||
server.closeIdleConnections();
|
||||
}), common.platformTimeout(500));
|
||||
}));
|
||||
});
|
||||
@@ -0,0 +1,50 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
const http = require('http');
|
||||
|
||||
const server = http.createServer(common.mustCall((req, res) => {
|
||||
if (req.url === '/first') {
|
||||
res.end('ok');
|
||||
return;
|
||||
}
|
||||
setTimeout(() => {
|
||||
res.end('ok');
|
||||
}, common.platformTimeout(500));
|
||||
}, 2));
|
||||
|
||||
server.keepAliveTimeout = common.platformTimeout(200);
|
||||
|
||||
const agent = new http.Agent({
|
||||
keepAlive: true,
|
||||
maxSockets: 1
|
||||
});
|
||||
|
||||
function request(path, callback) {
|
||||
const port = server.address().port;
|
||||
const req = http.request({ agent, path, port }, common.mustCall((res) => {
|
||||
assert.strictEqual(res.statusCode, 200);
|
||||
|
||||
res.setEncoding('utf8');
|
||||
|
||||
let result = '';
|
||||
res.on('data', (chunk) => {
|
||||
result += chunk;
|
||||
});
|
||||
|
||||
res.on('end', common.mustCall(() => {
|
||||
assert.strictEqual(result, 'ok');
|
||||
callback();
|
||||
}));
|
||||
}));
|
||||
req.end();
|
||||
}
|
||||
|
||||
server.listen(0, common.mustCall(() => {
|
||||
request('/first', () => {
|
||||
request('/second', () => {
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
}));
|
||||
Reference in New Issue
Block a user