@revoloo/cypress6
Version:
Cypress.io end to end testing tool
87 lines (76 loc) • 2.15 kB
JSX
import { observer } from 'mobx-react'
import Tooltip from '@cypress/react-tooltip'
import { trim } from 'lodash'
import React from 'react'
import ipc from '../lib/ipc'
const trimQuotes = (input) =>
trim(input, '"')
const getProxySourceName = (proxySource) => {
if (proxySource === 'win32') {
return 'Windows system settings'
}
return 'environment variables'
}
const openHelp = (e) => {
e.preventDefault()
ipc.externalOpen({
url: 'https://on.cypress.io/proxy-configuration',
params: {
utm_medium: 'Settings Tab',
utm_campaign: 'Proxy Settings',
},
})
}
const renderLearnMore = () => {
return (
<a href='#' className='learn-more' onClick={openHelp}>
<i className='fas fa-info-circle' /> Learn more
</a>
)
}
const ProxySettings = observer(({ app }) => {
if (!app.proxyServer) {
return (
<div>
{renderLearnMore()}
<p className='text-muted'>
There is no active proxy configuration.
</p>
</div>
)
}
const proxyBypassList = trimQuotes(app.proxyBypassList)
const proxySource = getProxySourceName(trimQuotes(app.proxySource))
return (
<div className="proxy-settings">
{renderLearnMore()}
<p>Cypress auto-detected the following proxy settings from {proxySource}:</p>
<table className="proxy-table">
<tbody>
<tr>
<th>Proxy Server</th>
<td>
<code>
{trimQuotes(app.proxyServer)}
</code>
</td>
</tr>
<tr>
<th>
Proxy Bypass List{' '}
<Tooltip className='cy-tooltip'
title='Cypress will not route requests to these domains through the configured proxy server.'
>
<i className='fas fa-info-circle' />
</Tooltip>
</th>
<td>
{proxyBypassList ? <code>{proxyBypassList.split(',').join(', ')}</code> : <span className='no-bypass'>none</span>}
</td>
</tr>
</tbody>
</table>
</div>
)
})
export default ProxySettings