MCPcopy
hub / github.com/alibaba/anyproxy / testWrapper

Function testWrapper

test/spec_rule/rule_replace_request_option_spec.js:16–89  ·  view source on GitHub ↗
(protocol)

Source from the content-addressed store, hash-verified

14testWrapper('https');
15
16function testWrapper(protocol) {
17 describe('Rule replaceRequestOption should be working in :' + protocol, () => {
18 let proxyServer;
19 let serverInstance;
20
21 beforeAll(done => {
22 jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
23 printLog('Start server for rule_replace_request_option_spec');
24
25 serverInstance = new Server();
26
27 proxyServer = ProxyServerUtil.proxyServerWithRule(rule);
28
29 setTimeout(() => {
30 done();
31 }, 2000);
32 });
33
34 afterAll(() => {
35 serverInstance && serverInstance.close();
36 proxyServer && proxyServer.close();
37 printLog('Close server for rule_replace_request_option_spec');
38 });
39
40 it('Should replace request option if the assertion is true', done => {
41 const url = generateUrl(protocol, '/test/should_replace_option');
42 const replacedUrl = generateUrl(protocol, '/test/new_replace_option');
43
44 const token = 'replacedOption' + Date.now();
45 const directToken = 'notRepacedOption' + Date.now();
46 proxyGet(url, {}, { token })
47 .then(proxyRes => {
48 directGet(url, {}, { token: directToken })
49 .then(directRes => {
50 expect(proxyRes.statusCode).toEqual(200);
51 expect(proxyRes.body).toEqual('the_new_replaced_option_page_content');
52
53 const proxyRequestObj = serverInstance.getProxyRequestRecord(replacedUrl);
54 expect(proxyRequestObj.headers.token).toEqual(token);
55 expect(proxyRequestObj.headers['via-proxy']).toEqual('true');
56
57 expect(directRes.statusCode).toEqual(200);
58 expect(directRes.body).toEqual('the_request_that_has_not_be_replaced');
59
60 const directRequestObj = serverInstance.getRequestRecord(url);
61 expect(directRequestObj.headers.token).toEqual(directToken);
62
63 done();
64 }).catch(error => {
65 console.error('error happened in direct get for replaceOption rule: ', error);
66 done.fail('error happened when direct test replaceOption rule ');
67 });
68 }).catch(error => {
69 console.error('error happened in proxy get for replaceOption rule: ', error);
70 done.fail('error happened when proxy test replaceOption rule ');
71 });
72 });
73

Calls 5

generateUrlFunction · 0.85
proxyGetFunction · 0.85
directGetFunction · 0.85
printLogFunction · 0.50
closeMethod · 0.45

Tested by

no test coverage detected