mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-02-25 06:09:11 +08:00
56 lines
1.5 KiB
JavaScript
Executable File
56 lines
1.5 KiB
JavaScript
Executable File
'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();
|
|
});
|
|
});
|
|
});
|
|
});
|