mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-02-24 13:56:05 +08:00
65 lines
1.5 KiB
JavaScript
Executable File
65 lines
1.5 KiB
JavaScript
Executable File
'use strict';
|
|
|
|
var assert = require('assert');
|
|
var express = require('express');
|
|
var http = require('http');
|
|
var request = require('supertest');
|
|
var proxy = require('../');
|
|
var proxyTarget = require('../test/support/proxyTarget');
|
|
|
|
var aliases = ['forwardPath', 'forwardPathAsync', 'proxyReqPathResolver'];
|
|
|
|
describe('resolveProxyReqPath', function () {
|
|
var server;
|
|
|
|
this.timeout(10000);
|
|
|
|
before(function () {
|
|
var handlers = [{
|
|
method: 'get',
|
|
path: '/working',
|
|
fn: function (req, res) {
|
|
res.sendStatus(200);
|
|
}
|
|
}];
|
|
|
|
server = proxyTarget(12345, 100, handlers);
|
|
});
|
|
|
|
after(function () {
|
|
server.close();
|
|
});
|
|
|
|
aliases.forEach(function (alias) {
|
|
describe('when author uses option ' + alias, function () {
|
|
it('the proxy request path is the result of the function', function (done) {
|
|
var app = express();
|
|
var opts = {};
|
|
opts[alias] = function () { return '/working'; };
|
|
app.use(proxy('localhost:12345', opts));
|
|
|
|
request(app)
|
|
.get('/failing')
|
|
.expect(200)
|
|
.end(done);
|
|
});
|
|
|
|
it('the ' + alias + ' method has access to request object', function (done) {
|
|
var app = express();
|
|
app.use(proxy('localhost:12345', {
|
|
forwardPath: function (req) {
|
|
assert.ok(req instanceof http.IncomingMessage);
|
|
return '/working';
|
|
}
|
|
}));
|
|
|
|
request(app)
|
|
.get('/foobar')
|
|
.expect(200)
|
|
.end(done);
|
|
});
|
|
|
|
});
|
|
});
|
|
});
|