Whalebird-desktop-client-ma.../spec/main/unit/proxy.spec.ts

70 lines
2.5 KiB
TypeScript

import path from 'path'
import ProxyConfiguration from '~/src/main/proxy'
import { ManualProxy, ProxyProtocol } from '~/src/types/proxy'
const preferencesDBPath = path.resolve(__dirname, '../../preferences.json')
const proxyConfiguration = new ProxyConfiguration(preferencesDBPath)
jest.mock('electron', () => ({
app: {
// getVersion is used by electron-log
getVersion: jest.fn(),
// getName is used by electron-json-storage
getName: jest.fn()
}
}))
describe('Parser', () => {
it('do not use proxy', () => {
proxyConfiguration.setSystemProxy('DIRECT')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).toEqual(false)
})
it('HTTP and HTTPS proxy', () => {
proxyConfiguration.setSystemProxy('PROXY hoge.example.com:8080')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).not.toBe(false)
const manualProxy = proxy as ManualProxy
expect(manualProxy.protocol).toEqual(ProxyProtocol.http)
expect(manualProxy.host).toEqual('hoge.example.com')
expect(manualProxy.port).toEqual('8080')
})
it('SOCKS4 proxy', () => {
proxyConfiguration.setSystemProxy('SOCKS4 hoge.example.com:8080')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).not.toBe(false)
const manualProxy = proxy as ManualProxy
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks4)
})
it('SOCKS4A proxy', () => {
proxyConfiguration.setSystemProxy('SOCKS4A hoge.example.com:8080')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).not.toBe(false)
const manualProxy = proxy as ManualProxy
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks4a)
})
it('SOCKS5 proxy', () => {
proxyConfiguration.setSystemProxy('SOCKS5 hoge.example.com:8080')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).not.toBe(false)
const manualProxy = proxy as ManualProxy
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks5)
})
it('SOCKS5H proxy', () => {
proxyConfiguration.setSystemProxy('SOCKS5H hoge.example.com:8080')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).not.toBe(false)
const manualProxy = proxy as ManualProxy
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks5h)
})
it('SOCKS proxy', () => {
proxyConfiguration.setSystemProxy('SOCKS hoge.example.com:8080')
const proxy = proxyConfiguration.parseSystemProxy()
expect(proxy).not.toBe(false)
const manualProxy = proxy as ManualProxy
expect(manualProxy.protocol).toEqual(ProxyProtocol.socks5)
})
})