mirror of
https://github.com/tenrok/axios.git
synced 2026-06-17 19:21:29 +03:00
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
import { afterEach, describe, expect, it } from 'vitest';
|
|
import shouldBypassProxy from '../../../lib/helpers/shouldBypassProxy.js';
|
|
|
|
const originalNoProxy = process.env.no_proxy;
|
|
const originalNOProxy = process.env.NO_PROXY;
|
|
|
|
const setNoProxy = (value) => {
|
|
process.env.no_proxy = value;
|
|
process.env.NO_PROXY = value;
|
|
};
|
|
|
|
afterEach(() => {
|
|
if (originalNoProxy === undefined) {
|
|
delete process.env.no_proxy;
|
|
} else {
|
|
process.env.no_proxy = originalNoProxy;
|
|
}
|
|
|
|
if (originalNOProxy === undefined) {
|
|
delete process.env.NO_PROXY;
|
|
} else {
|
|
process.env.NO_PROXY = originalNOProxy;
|
|
}
|
|
});
|
|
|
|
describe('helpers::shouldBypassProxy', () => {
|
|
it('should bypass proxy for localhost with a trailing dot', () => {
|
|
setNoProxy('localhost,127.0.0.1,::1');
|
|
|
|
expect(shouldBypassProxy('http://localhost.:8080/')).toBe(true);
|
|
});
|
|
|
|
it('should bypass proxy for bracketed ipv6 loopback', () => {
|
|
setNoProxy('localhost,127.0.0.1,::1');
|
|
|
|
expect(shouldBypassProxy('http://[::1]:8080/')).toBe(true);
|
|
});
|
|
|
|
it('should support bracketed ipv6 entries in no_proxy', () => {
|
|
setNoProxy('[::1]');
|
|
|
|
expect(shouldBypassProxy('http://[::1]:8080/')).toBe(true);
|
|
});
|
|
|
|
it('should match wildcard and explicit ports', () => {
|
|
setNoProxy('*.example.com,localhost:8080');
|
|
|
|
expect(shouldBypassProxy('http://api.example.com/')).toBe(true);
|
|
expect(shouldBypassProxy('http://localhost:8080/')).toBe(true);
|
|
expect(shouldBypassProxy('http://localhost:8081/')).toBe(false);
|
|
});
|
|
});
|