mirror of
https://github.com/ansible/awx.git
synced 2026-02-12 15:14:45 -03:30
fix unit tests for network handling
This commit is contained in:
132
src/App.jsx
132
src/App.jsx
@@ -14,6 +14,7 @@ import { t } from '@lingui/macro';
|
||||
|
||||
import { RootDialog } from './contexts/RootDialog';
|
||||
import { withNetwork } from './contexts/Network';
|
||||
import { Config } from './contexts/Config';
|
||||
|
||||
import AlertModal from './components/AlertModal';
|
||||
import About from './components/About';
|
||||
@@ -64,10 +65,8 @@ class App extends Component {
|
||||
|
||||
render () {
|
||||
const {
|
||||
ansible_version,
|
||||
isAboutModalOpen,
|
||||
isNavOpen,
|
||||
version
|
||||
isNavOpen
|
||||
} = this.state;
|
||||
|
||||
const {
|
||||
@@ -77,75 +76,80 @@ class App extends Component {
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<I18n>
|
||||
{({ i18n }) => (
|
||||
<RootDialog>
|
||||
{({ title, bodyText, variant = 'info', clearRootDialogMessage }) => (
|
||||
<Fragment>
|
||||
{(title || bodyText) && (
|
||||
<AlertModal
|
||||
variant={variant}
|
||||
isOpen={!!(title || bodyText)}
|
||||
onClose={clearRootDialogMessage}
|
||||
title={title}
|
||||
actions={[
|
||||
<Button key="close" variant="secondary" onClick={clearRootDialogMessage}>{i18n._(t`Close`)}</Button>
|
||||
]}
|
||||
>
|
||||
{bodyText}
|
||||
</AlertModal>
|
||||
)}
|
||||
<Page
|
||||
usecondensed="True"
|
||||
header={(
|
||||
<PageHeader
|
||||
showNavToggle
|
||||
onNavToggle={this.onNavToggle}
|
||||
logo={<TowerLogo linkTo="/" />}
|
||||
toolbar={(
|
||||
<PageHeaderToolbar
|
||||
isAboutDisabled={!version}
|
||||
onAboutClick={this.onAboutModalOpen}
|
||||
onLogoutClick={this.onLogout}
|
||||
<Config>
|
||||
{({ ansible_version, version }) => (
|
||||
<I18n>
|
||||
{({ i18n }) => (
|
||||
<RootDialog>
|
||||
{({ title, bodyText, variant = 'info', clearRootDialogMessage }) => (
|
||||
<Fragment>
|
||||
{(title || bodyText) && (
|
||||
<AlertModal
|
||||
variant={variant}
|
||||
isOpen={!!(title || bodyText)}
|
||||
onClose={clearRootDialogMessage}
|
||||
title={title}
|
||||
actions={[
|
||||
<Button key="close" variant="secondary" onClick={clearRootDialogMessage}>{i18n._(t`Close`)}</Button>
|
||||
]}
|
||||
>
|
||||
{bodyText}
|
||||
</AlertModal>
|
||||
)}
|
||||
<Page
|
||||
usecondensed="True"
|
||||
header={(
|
||||
<PageHeader
|
||||
showNavToggle
|
||||
onNavToggle={this.onNavToggle}
|
||||
logo={<TowerLogo linkTo="/" />}
|
||||
toolbar={(
|
||||
<PageHeaderToolbar
|
||||
isAboutDisabled={!version}
|
||||
onAboutClick={this.onAboutModalOpen}
|
||||
onLogoutClick={this.onLogout}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
)}
|
||||
sidebar={(
|
||||
<PageSidebar
|
||||
isNavOpen={isNavOpen}
|
||||
nav={(
|
||||
<Nav aria-label={navLabel}>
|
||||
<NavList>
|
||||
{routeGroups.map(({ groupId, groupTitle, routes }) => (
|
||||
<NavExpandableGroup
|
||||
key={groupId}
|
||||
groupId={groupId}
|
||||
groupTitle={groupTitle}
|
||||
routes={routes}
|
||||
/>
|
||||
))}
|
||||
</NavList>
|
||||
</Nav>
|
||||
sidebar={(
|
||||
<PageSidebar
|
||||
isNavOpen={isNavOpen}
|
||||
nav={(
|
||||
<Nav aria-label={navLabel}>
|
||||
<NavList>
|
||||
{routeGroups.map(({ groupId, groupTitle, routes }) => (
|
||||
<NavExpandableGroup
|
||||
key={groupId}
|
||||
groupId={groupId}
|
||||
groupTitle={groupTitle}
|
||||
routes={routes}
|
||||
/>
|
||||
))}
|
||||
</NavList>
|
||||
</Nav>
|
||||
)}
|
||||
/>
|
||||
)}
|
||||
>
|
||||
{render && render({ routeGroups })}
|
||||
</Page>
|
||||
<About
|
||||
ansible_version={ansible_version}
|
||||
version={version}
|
||||
isOpen={isAboutModalOpen}
|
||||
onClose={this.onAboutModalClose}
|
||||
/>
|
||||
)}
|
||||
>
|
||||
{render && render({ routeGroups })}
|
||||
</Page>
|
||||
<About
|
||||
ansible_version={ansible_version}
|
||||
version={version}
|
||||
isOpen={isAboutModalOpen}
|
||||
onClose={this.onAboutModalClose}
|
||||
/>
|
||||
</Fragment>
|
||||
</Fragment>
|
||||
)}
|
||||
</RootDialog>
|
||||
)}
|
||||
</RootDialog>
|
||||
</I18n>
|
||||
)}
|
||||
</I18n>
|
||||
</Config>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export { App as _App };
|
||||
export default withNetwork(App);
|
||||
|
||||
@@ -275,4 +275,5 @@ Lookup.defaultProps = {
|
||||
name: null,
|
||||
};
|
||||
|
||||
export { Lookup as _Lookup };
|
||||
export default withNetwork(Lookup);
|
||||
|
||||
@@ -343,4 +343,5 @@ Notifications.propTypes = {
|
||||
onCreateSuccess: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
export { Notifications as _Notifications };
|
||||
export default withNetwork(Notifications);
|
||||
|
||||
@@ -26,6 +26,7 @@ class NotifyAndRedirect extends Component {
|
||||
|
||||
render () {
|
||||
const { to, push, from, exact, strict, sensitive } = this.props;
|
||||
|
||||
return (
|
||||
<Redirect
|
||||
to={to}
|
||||
@@ -39,4 +40,5 @@ class NotifyAndRedirect extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
export { NotifyAndRedirect as _NotifyAndRedirect };
|
||||
export default withRootDialog(withRouter(NotifyAndRedirect));
|
||||
|
||||
@@ -67,13 +67,13 @@ class provider extends Component {
|
||||
|
||||
render () {
|
||||
const {
|
||||
value
|
||||
value: stateValue
|
||||
} = this.state;
|
||||
|
||||
const { children } = this.props;
|
||||
const { value: propsValue, children } = this.props;
|
||||
|
||||
return (
|
||||
<ConfigContext.Provider value={value}>
|
||||
<ConfigContext.Provider value={propsValue || stateValue}>
|
||||
{children}
|
||||
</ConfigContext.Provider>
|
||||
);
|
||||
|
||||
@@ -59,21 +59,20 @@ class prov extends Component {
|
||||
|
||||
render () {
|
||||
const {
|
||||
children
|
||||
} = this.props;
|
||||
|
||||
const {
|
||||
value
|
||||
value: stateValue
|
||||
} = this.state;
|
||||
|
||||
const { value: propsValue, children } = this.props;
|
||||
|
||||
return (
|
||||
<NetworkContext.Provider value={value}>
|
||||
<NetworkContext.Provider value={propsValue || stateValue}>
|
||||
{children}
|
||||
</NetworkContext.Provider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export { NetworkProvider as _NetworkProvider };
|
||||
export const NetworkProvider = withRootDialog(withRouter(prov));
|
||||
|
||||
export function withNetwork (Child) {
|
||||
|
||||
@@ -50,7 +50,7 @@ import Templates from './pages/Templates';
|
||||
import Users from './pages/Users';
|
||||
|
||||
// eslint-disable-next-line import/prefer-default-export
|
||||
export async function main (render) {
|
||||
export function main (render) {
|
||||
const el = document.getElementById('app');
|
||||
|
||||
return render(
|
||||
@@ -246,7 +246,7 @@ export async function main (render) {
|
||||
)}
|
||||
</I18n>
|
||||
</RootProvider>
|
||||
</HashRouter>, el
|
||||
</HashRouter>, el || document.createElement('div')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -97,4 +97,5 @@ class AWXLogin extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
export { AWXLogin as _AWXLogin };
|
||||
export default withNetwork(withRootDialog(withRouter(AWXLogin)));
|
||||
|
||||
@@ -94,4 +94,5 @@ class Organizations extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
export { Organizations as _Organizations };
|
||||
export default withRootDialog(withRouter(Organizations));
|
||||
|
||||
@@ -355,8 +355,8 @@ class OrganizationAccessList extends React.Component {
|
||||
isOpen={showWarning}
|
||||
onClose={this.hideWarning}
|
||||
actions={[
|
||||
<Button variant="danger" aria-label="confirm-delete" onClick={this.confirmDelete}>Delete</Button>,
|
||||
<Button variant="secondary" onClick={this.hideWarning}>Cancel</Button>
|
||||
<Button key="delete" variant="danger" aria-label="Confirm delete" onClick={this.confirmDelete}>Delete</Button>,
|
||||
<Button key="cancel" variant="secondary" onClick={this.hideWarning}>Cancel</Button>
|
||||
]}
|
||||
>
|
||||
{warningMsg}
|
||||
@@ -447,4 +447,5 @@ OrganizationAccessList.propTypes = {
|
||||
removeRole: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
export { OrganizationAccessList as _OrganizationAccessList };
|
||||
export default withNetwork(OrganizationAccessList);
|
||||
|
||||
@@ -28,6 +28,7 @@ class OrganizationForm extends Component {
|
||||
|
||||
this.state = {
|
||||
instanceGroups: [],
|
||||
initialInstanceGroups: [],
|
||||
formIsValid: true,
|
||||
};
|
||||
}
|
||||
@@ -174,4 +175,5 @@ OrganizationForm.contextTypes = {
|
||||
custom_virtualenvs: PropTypes.arrayOf(PropTypes.string)
|
||||
};
|
||||
|
||||
export { OrganizationForm as _OrganizationForm };
|
||||
export default withNetwork(withRouter(OrganizationForm));
|
||||
|
||||
@@ -62,4 +62,5 @@ class OrganizationNotifications extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
export { OrganizationNotifications as _OrganizationNotifications };
|
||||
export default withNetwork(OrganizationNotifications);
|
||||
|
||||
@@ -359,4 +359,5 @@ class OrganizationsList extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
export { OrganizationsList as _OrganizationsList };
|
||||
export default withNetwork(withRouter(OrganizationsList));
|
||||
|
||||
Reference in New Issue
Block a user