mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-04-23 08:41:26 +00:00
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/*
|
|
* test for rule shouldUseLocal
|
|
*
|
|
*/
|
|
|
|
const ProxyServerUtil = require('../util/ProxyServerUtil.js');
|
|
const { proxyGet, generateUrl } = require('../util/HttpUtil.js');
|
|
const Server = require('../server/server.js');
|
|
const { printLog } = require('../util/CommonUtil.js');
|
|
|
|
const rule = require('./rule/rule_should_use_local_response.js');
|
|
|
|
const expectedLocalBody = 'handled_in_local_response';
|
|
|
|
testWrapper('http');
|
|
testWrapper('https');
|
|
|
|
function testWrapper(protocol) {
|
|
describe('Rule shouldUseLocalResponse should be working in :' + protocol, () => {
|
|
let proxyServer;
|
|
let serverInstance;
|
|
|
|
beforeAll((done) => {
|
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
|
|
printLog('Start server for rule_shouldUseLocalResponse_spec');
|
|
|
|
serverInstance = new Server();
|
|
|
|
proxyServer = ProxyServerUtil.proxyServerWithRule(rule);
|
|
|
|
setTimeout(() => {
|
|
done();
|
|
}, 2000);
|
|
});
|
|
|
|
afterAll(() => {
|
|
serverInstance && serverInstance.close();
|
|
proxyServer && proxyServer.close();
|
|
printLog('Close server for rule_shouldUseLocalResponse_spec');
|
|
});
|
|
|
|
it('Should use local response if the assertion is true', done => {
|
|
const url = generateUrl(protocol, '/test/uselocal');
|
|
proxyGet(url, {})
|
|
.then(res => {
|
|
expect(res.body).toEqual(expectedLocalBody);
|
|
expect(res.headers['via-proxy-local']).toEqual('true');
|
|
done();
|
|
}).catch((error) => {
|
|
console.log('error happened in proxy get for shouldUseLocal: ', error);
|
|
done.fail('error happened when test shouldUseLocal rule');
|
|
});
|
|
});
|
|
});
|
|
}
|