http-client/__tests__/proxy.test.ts
Bryan MacFarlane 0fc3b75a6d initial commit
2020-01-09 18:32:59 -05:00

96 lines
3.4 KiB
TypeScript

import * as pm from '../_out/proxy';
import * as url from 'url';
describe('proxy', () => {
beforeEach(() => {
})
afterEach(() => {
})
it('does not return proxyUrl if variables not set', () => {
_clearVars();
let proxyUrl = pm.getProxyUrl(url.parse('https://github.com'));
expect(proxyUrl).toBeUndefined();
})
it('returns proxyUrl if https_proxy set for https url', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
let proxyUrl = pm.getProxyUrl(url.parse('https://github.com'));
expect(proxyUrl).toBeDefined();
})
it('does not return proxyUrl if http_proxy set for https url', () => {
_clearVars();
process.env["http_proxy"] = "https://myproxysvr";
let proxyUrl = pm.getProxyUrl(url.parse('https://github.com'));
expect(proxyUrl).toBeUndefined();
})
it('returns proxyUrl if http_proxy set for http url', () => {
_clearVars();
process.env["http_proxy"] = "http://myproxysvr";
let proxyUrl = pm.getProxyUrl(url.parse('http://github.com'));
expect(proxyUrl).toBeDefined();
})
it('does not return proxyUrl if only host as no_proxy list', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
process.env["no_proxy"] = "myserver"
let proxyUrl = pm.getProxyUrl(url.parse('https://myserver'));
expect(proxyUrl).toBeUndefined();
})
it('does not return proxyUrl if host in no_proxy list', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
process.env["no_proxy"] = "otherserver,myserver,anotherserver:8080"
let proxyUrl = pm.getProxyUrl(url.parse('https://myserver'));
expect(proxyUrl).toBeUndefined();
})
it('does not return proxyUrl if host in no_proxy list with spaces', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
process.env["no_proxy"] = "otherserver, myserver ,anotherserver:8080"
let proxyUrl = pm.getProxyUrl(url.parse('https://myserver'));
expect(proxyUrl).toBeUndefined();
})
it('does not return proxyUrl if host in no_proxy list with ports', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
process.env["no_proxy"] = "otherserver, myserver:8080 ,anotherserver"
let proxyUrl = pm.getProxyUrl(url.parse('https://myserver:8080'));
expect(proxyUrl).toBeUndefined();
})
it('returns proxyUrl if https_proxy set and not in no_proxy list', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
process.env["no_proxy"] = "otherserver, myserver ,anotherserver:8080"
let proxyUrl = pm.getProxyUrl(url.parse('https://github.com'));
expect(proxyUrl).toBeDefined();
})
it('returns proxyUrl if https_proxy set empty no_proxy set', () => {
_clearVars();
process.env["https_proxy"] = "https://myproxysvr";
process.env["no_proxy"] = ""
let proxyUrl = pm.getProxyUrl(url.parse('https://github.com'));
expect(proxyUrl).toBeDefined();
})
})
function _clearVars() {
delete process.env.http_proxy;
delete process.env.HTTP_PROXY;
delete process.env.https_proxy;
delete process.env.HTTPS_PROXY;
delete process.env.no_proxy;
delete process.env.NO_PROXY;
}