(protocol)
| 14 | testWrapper('https'); |
| 15 | |
| 16 | function 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 |
no test coverage detected