
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 assert = require('assert');
var express = require('express');
var request = require('supertest');
var proxy = require('../');
describe('when server responds with an error', function () {
this.timeout(10000);
var app;
var slowTarget;
var serverReference;
beforeEach(function () {
app = express();
});
afterEach(function () {
serverReference.close();
});
var STATUS_CODES = [
{ code: 403, text: 'Forbidden', toString: 'Error: cannot GET /proxy (403)' },
{ code: 404, text: 'Not Found', toString: 'Error: cannot GET /proxy (404)' },
{ code: 500, text: 'Internal Server Error', toString: 'Error: cannot GET /proxy (500)' }
];
STATUS_CODES.forEach(function (statusCode) {
it('express-http-proxy responds with ' + statusCode.text +
'when proxy server responds ' + statusCode.code, function (done) {
slowTarget = express();
slowTarget.use(function (req, res) { res.sendStatus(statusCode.code); });
serverReference = slowTarget.listen(12345);
app.use('/proxy', proxy('http://127.0.0.1:12345', {
reqAsBuffer: true,
reqBodyEncoding: null,
parseReqBody: false
}));
request(app)
.get('/proxy')
.expect(statusCode.code)
.end(function (err, res) {
assert(err === null);
assert(res.error);
assert(res.error.text === statusCode.text);
assert(res.error.toString() === statusCode.toString);
done();
});
});
});
});