Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion test/bodyEncoding.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ var fs = require('fs');
var os = require('os');
var proxy = require('../');
var startProxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');


describe('body encoding', function () {
Expand All @@ -19,7 +20,7 @@ describe('body encoding', function () {
server.close();
});

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var pngHex = '89504e470d0a1a0a0' +
'000000d4948445200' +
Expand Down
4 changes: 3 additions & 1 deletion test/catchingErrors.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('when server responds with an error', function () {

this.timeout(10000);
this.timeout(TIMEOUT.QUICK);

var app;
var slowTarget;
Expand Down
18 changes: 18 additions & 0 deletions test/constants.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use strict';

/**
* Test timeout constants in milliseconds
*/
module.exports = {
// Standard timeout for most tests
STANDARD: 10000,

// Shorter timeout for quick tests
QUICK: 2000,

// Medium timeout for tests that need a bit more time
MEDIUM: 3000,

// Extended timeout for tests that need more time
EXTENDED: 15000
};
5 changes: 3 additions & 2 deletions test/cookies.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

var proxyTarget = require('../test/support/proxyTarget');
var proxyRouteFn = [{
method: 'get',
path: '/cookieTest',
Expand All @@ -18,7 +19,7 @@ var proxyRouteFn = [{
}];

describe('proxies cookie', function () {
this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app;
var proxyServer;
Expand Down
5 changes: 3 additions & 2 deletions test/decorateUserResHeaders.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('when userResHeaderDecorator is defined', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app;
var serverReference;
Expand Down
4 changes: 3 additions & 1 deletion test/defineMultipleProxyHandlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ var express = require('express');
var http = require('http');
var startProxyTarget = require('./support/proxyTarget');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

function fakeProxyServer({path, port, response}) {
var proxyRouteFn = [{
Expand Down Expand Up @@ -37,7 +39,7 @@ function simulateUserRequest() {
}

describe('handle multiple proxies in the same runtime', function () {
this.timeout(3000);
this.timeout(TIMEOUT.MEDIUM);

var server;
var targetServer, targetServer2;
Expand Down
5 changes: 3 additions & 2 deletions test/getBody.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ var express = require('express');
var nock = require('nock');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');


function createLocalApplicationServer() {
Expand All @@ -14,8 +16,7 @@ function createLocalApplicationServer() {
}

describe('when proxy request is a GET', function () {

this.timeout(10000);
this.timeout(TIMEOUT.QUICK);

var localServer;

Expand Down
3 changes: 2 additions & 1 deletion test/headers.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('proxies headers', function () {
this.timeout(2000);
this.timeout(TIMEOUT.QUICK);

var http;
var proxyServer;
Expand Down
6 changes: 4 additions & 2 deletions test/host.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
'use strict';

var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('host can be a dynamic function', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app = express();
describe('and memoization can be disabled', function () {
Expand Down
3 changes: 2 additions & 1 deletion test/https.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('proxies https', function () {
this.timeout(10000);
this.timeout(TIMEOUT.QUICK);

var app;
var proxyServer;
Expand Down
4 changes: 3 additions & 1 deletion test/maybeSkipToNextHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ var request = require('supertest');
var proxy = require('../');
var http = require('http');
var assert = require('assert');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('when skipToNextHandlerFilter is defined', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app;
var slowTarget;
Expand Down
5 changes: 3 additions & 2 deletions test/params.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

var proxyTarget = require('../test/support/proxyTarget');
var proxyRouteFn = [{
method: 'get',
path: '/test',
Expand All @@ -15,7 +16,7 @@ var proxyRouteFn = [{
}];

describe('proxies query parameters', function () {
this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app;
var proxyServer;
Expand Down
9 changes: 5 additions & 4 deletions test/path.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
'use strict';

var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');
var startProxyTarget = require('./support/proxyTarget');
var expect = require('chai').expect;

describe('uses remote path', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app = express();
var proxyRoutes = ['/somePath/', '/somePath/longer/path', '/somePath/long/path/with/many/tokens'];
Expand Down Expand Up @@ -52,10 +54,9 @@ describe('uses remote path', function () {
});
});


describe('host can be a dynamic function', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app = express();
var firstProxyApp = express();
Expand Down
5 changes: 3 additions & 2 deletions test/postBody.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ var express = require('express');
var nock = require('nock');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');


function createLocalApplicationServer() {
Expand All @@ -14,8 +16,7 @@ function createLocalApplicationServer() {
}

describe('when proxy request is a POST', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var localServer;

Expand Down
5 changes: 3 additions & 2 deletions test/preserveHostHdr.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

var proxyTarget = require('../test/support/proxyTarget');
var proxyRouteFn = [{
method: 'get',
path: '/hostHdrTest',
Expand All @@ -16,7 +17,7 @@ var proxyRouteFn = [{

describe('preserves host header only when requested', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

var app;
var proxyServer;
Expand Down
5 changes: 3 additions & 2 deletions test/proxyReqPathResolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ var express = require('express');
var http = require('http');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('../test/support/proxyTarget');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

var aliases = ['forwardPath', 'forwardPathAsync', 'proxyReqPathResolver'];

describe('resolveProxyReqPath', function () {
var server;

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

before(function () {
var handlers = [{
Expand Down
3 changes: 2 additions & 1 deletion test/setsContentLength.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ var fs = require('fs');
var os = require('os');
var proxy = require('../');
var startProxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('headers: [content-length]', function () {
var server;
Expand All @@ -18,7 +19,7 @@ describe('headers: [content-length]', function () {
server.close();
});

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

describe('on proxy request', function () {
it('a `GET` request should have a content-length header, and it should be 0', function (done) {
Expand Down
4 changes: 3 additions & 1 deletion test/streaming.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ var express = require('express');
var http = require('http');
var startProxyTarget = require('./support/proxyTarget');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

function chunkingProxyServer() {
var proxyRouteFn = [{
Expand Down Expand Up @@ -45,7 +47,7 @@ function startLocalServer(proxyOptions) {
}

describe('streams / piped requests', function () {
this.timeout(3000);
this.timeout(TIMEOUT.MEDIUM);

var server;
var targetServer;
Expand Down
5 changes: 3 additions & 2 deletions test/urlParsing.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ var assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('url parsing', function () {

this.timeout(10000);
this.timeout(TIMEOUT.STANDARD);

it('can parse a url with a port', function (done) {
var app = express();
Expand Down
25 changes: 25 additions & 0 deletions test/userResDecorator.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ var express = require('express');
var request = require('supertest');
var proxy = require('../');
var proxyTarget = require('./support/proxyTarget');
var TIMEOUT = require('./constants');

describe('userResDecorator', function () {
this.timeout(TIMEOUT.QUICK);
var proxyServer;

beforeEach(function () {
Expand Down Expand Up @@ -215,6 +217,29 @@ describe('userResDecorator', function () {
done();
});
});

describe('when userResDecorator returns a Promise', function () {
this.timeout(TIMEOUT.EXTENDED); // give it some extra time to get response

it('is able to read and manipulate the response', function (done) {
var app = express();
app.use(proxy('https://github.com/villadora/express-http-proxy', {
userResDecorator: function (targetResponse, data) {
data = data.toString().replace('DOCTYPE', 'WINNING');
assert(data !== '');
return data;
}
}));

request(app)
.get('/html')
.end(function (err, res) {
if (err) { return done(err); }
assert(res.text.indexOf('WINNING') > -1);
done();
});
});
});
});

describe('test userResDecorator on html response from mock server', function () {
Expand Down