File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
'use strict';
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var startProxyTarget = require('./support/proxyTarget');
var expect = require('chai').expect;
describe('uses remote path', function () {
this.timeout(10000);
var app = express();
var proxyRoutes = ['/somePath/', '/somePath/longer/path', '/somePath/long/path/with/many/tokens'];
var proxyKeyPath = '/somePath';
var server;
afterEach(function () {
server.close();
});
proxyRoutes.forEach(function (path) {
it('uses path component from inbound request', function (done) {
var modifiedPath = path.replace(new RegExp(proxyKeyPath), '');
var proxyRouteFn = {
method: 'get',
path: modifiedPath,
fn: function (req, res) {
res.json({ path: path, modifiedPath: modifiedPath });
}
};
server = startProxyTarget(8309, 1000, [proxyRouteFn]);
app.use('/somePath/', proxy('http://localhost:8309'));
request(app)
.get(path)
.expect(200)
.end(function (err, response) {
if (err) {
return done(err);
}
expect(response.path === path);
expect(response.modifiedPath === path);
done();
});
});
});
});
describe('host can be a dynamic function', function () {
this.timeout(10000);
var app = express();
var firstProxyApp = express();
var secondProxyApp = express();
var firstPort = 10031;
var secondPort = 10032;
app.use('/proxy/:port', proxy(function (req) {
return 'localhost:' + req.params.port;
}, {
memoizeHost: false
}));
firstProxyApp.use('/', function (req, res) {
res.sendStatus(204);
});
firstProxyApp.listen(firstPort);
secondProxyApp.use('/', function (req, res) {
res.sendStatus(200);
});
secondProxyApp.listen(secondPort);
it('can proxy with session value', function (done) {
request(app)
.get('/proxy/' + firstPort)
.expect(204)
.end(function (err) {
if (err) {
return done(err);
}
request(app)
.get('/proxy/' + secondPort)
.expect(200, done);
});
});
});