mirror of
https://github.com/bitinflow/server.git
synced 2026-03-13 13:35:53 +00:00
71 lines
1.6 KiB
JavaScript
71 lines
1.6 KiB
JavaScript
import http from 'http';
|
|
import url from 'url';
|
|
import assert from 'assert';
|
|
import localtunnel from 'localtunnel';
|
|
|
|
import CreateServer from '../server';
|
|
|
|
const localtunnel_server = CreateServer({
|
|
max_tcp_sockets: 2
|
|
});
|
|
|
|
var lt_server_port
|
|
|
|
suite('simple');
|
|
|
|
test('set up localtunnel server', function(done) {
|
|
var server = localtunnel_server.listen(function() {
|
|
lt_server_port = server.address().port;
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('set up local http server', function(done) {
|
|
var server = http.createServer(function(req, res) {
|
|
res.end('hello world!');
|
|
});
|
|
|
|
server.listen(function() {
|
|
test._fake_port = server.address().port;
|
|
done();
|
|
});
|
|
});
|
|
|
|
test('set up localtunnel client', function(done) {
|
|
var opt = {
|
|
host: 'http://localhost:' + lt_server_port,
|
|
};
|
|
|
|
localtunnel(test._fake_port, opt, function(err, tunnel) {
|
|
assert.ifError(err);
|
|
var url = tunnel.url;
|
|
assert.ok(new RegExp('^http:\/\/.*localhost:' + lt_server_port + '$').test(url));
|
|
test._fake_url = url;
|
|
done(err);
|
|
});
|
|
});
|
|
|
|
test('should respond to request', function(done) {
|
|
var hostname = url.parse(test._fake_url).hostname;
|
|
var opt = {
|
|
host: 'localhost',
|
|
port: lt_server_port,
|
|
headers: {
|
|
host: hostname + '.tld'
|
|
}
|
|
};
|
|
|
|
http.get(opt, function(res) {
|
|
var body = '';
|
|
res.setEncoding('utf-8');
|
|
res.on('data', function(chunk) {
|
|
body += chunk;
|
|
});
|
|
|
|
res.on('end', function() {
|
|
assert.equal(body, 'hello world!');
|
|
done();
|
|
});
|
|
});
|
|
});
|