mirror of
https://github.com/ansible/awx.git
synced 2026-05-13 12:27:37 -02:30
add unit test coverage for TowerLogo.jsx
This commit is contained in:
@@ -108,17 +108,6 @@ describe('<App />', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('onLogoClick sets selected nav back to defaults', () => {
|
|
||||||
const appWrapper = shallow(<App />);
|
|
||||||
|
|
||||||
appWrapper.setState({ activeGroup: 'foo', activeItem: 'bar' });
|
|
||||||
expect(appWrapper.state().activeItem).toBe('bar');
|
|
||||||
expect(appWrapper.state().activeGroup).toBe('foo');
|
|
||||||
|
|
||||||
appWrapper.instance().onLogoClick();
|
|
||||||
expect(appWrapper.state().activeGroup).toBe(DEFAULT_ACTIVE_GROUP);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('onLogout makes expected call to api client', async (done) => {
|
test('onLogout makes expected call to api client', async (done) => {
|
||||||
const logout = jest.fn(() => Promise.resolve());
|
const logout = jest.fn(() => Promise.resolve());
|
||||||
const api = { logout };
|
const api = { logout };
|
||||||
|
|||||||
@@ -29,11 +29,10 @@ describe('<TowerLogo />', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('adds navigation to route history on click', () => {
|
test('adds navigation to route history on click', () => {
|
||||||
const onLogoClick = jest.fn();
|
|
||||||
logoWrapper = mount(
|
logoWrapper = mount(
|
||||||
<MemoryRouter>
|
<MemoryRouter>
|
||||||
<I18nProvider>
|
<I18nProvider>
|
||||||
<TowerLogo onClick={onLogoClick} />
|
<TowerLogo linkTo="/" />
|
||||||
</I18nProvider>
|
</I18nProvider>
|
||||||
</MemoryRouter>
|
</MemoryRouter>
|
||||||
);
|
);
|
||||||
@@ -43,12 +42,26 @@ describe('<TowerLogo />', () => {
|
|||||||
expect(towerLogoElem.props().history.length).toBe(2);
|
expect(towerLogoElem.props().history.length).toBe(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('linkTo prop is optional', () => {
|
||||||
|
logoWrapper = mount(
|
||||||
|
<MemoryRouter>
|
||||||
|
<I18nProvider>
|
||||||
|
<TowerLogo />
|
||||||
|
</I18nProvider>
|
||||||
|
</MemoryRouter>
|
||||||
|
);
|
||||||
|
findChildren();
|
||||||
|
expect(towerLogoElem.props().history.length).toBe(1);
|
||||||
|
logoWrapper.simulate('click');
|
||||||
|
expect(towerLogoElem.props().history.length).toBe(1);
|
||||||
|
});
|
||||||
|
|
||||||
test('handles mouse over and out state.hover changes', () => {
|
test('handles mouse over and out state.hover changes', () => {
|
||||||
const onLogoClick = jest.fn();
|
const onLogoClick = jest.fn();
|
||||||
logoWrapper = mount(
|
logoWrapper = mount(
|
||||||
<MemoryRouter>
|
<MemoryRouter>
|
||||||
<I18nProvider>
|
<I18nProvider>
|
||||||
<TowerLogo onClick={onLogoClick} />
|
<TowerLogo />
|
||||||
</I18nProvider>
|
</I18nProvider>
|
||||||
</MemoryRouter>
|
</MemoryRouter>
|
||||||
);
|
);
|
||||||
|
|||||||
11
src/App.jsx
11
src/App.jsx
@@ -34,7 +34,6 @@ class App extends Component {
|
|||||||
this.onLogout = this.onLogout.bind(this);
|
this.onLogout = this.onLogout.bind(this);
|
||||||
this.onAboutModalClose = this.onAboutModalClose.bind(this);
|
this.onAboutModalClose = this.onAboutModalClose.bind(this);
|
||||||
this.onAboutModalOpen = this.onAboutModalOpen.bind(this);
|
this.onAboutModalOpen = this.onAboutModalOpen.bind(this);
|
||||||
this.onLogoClick = this.onLogoClick.bind(this);
|
|
||||||
this.onNavToggle = this.onNavToggle.bind(this);
|
this.onNavToggle = this.onNavToggle.bind(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -72,10 +71,6 @@ class App extends Component {
|
|||||||
this.setState(({ isNavOpen }) => ({ isNavOpen: !isNavOpen }));
|
this.setState(({ isNavOpen }) => ({ isNavOpen: !isNavOpen }));
|
||||||
}
|
}
|
||||||
|
|
||||||
onLogoClick () {
|
|
||||||
this.setState({ activeGroup: 'views_group' });
|
|
||||||
}
|
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const {
|
const {
|
||||||
ansible_version,
|
ansible_version,
|
||||||
@@ -105,11 +100,7 @@ class App extends Component {
|
|||||||
<PageHeader
|
<PageHeader
|
||||||
showNavToggle
|
showNavToggle
|
||||||
onNavToggle={this.onNavToggle}
|
onNavToggle={this.onNavToggle}
|
||||||
logo={
|
logo={<TowerLogo linkTo="/"/>}
|
||||||
<TowerLogo
|
|
||||||
onClick={this.onLogoClick}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
toolbar={
|
toolbar={
|
||||||
<PageHeaderToolbar
|
<PageHeaderToolbar
|
||||||
isAboutDisabled={!version}
|
isAboutDisabled={!version}
|
||||||
|
|||||||
@@ -18,13 +18,11 @@ class TowerLogo extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onClick () {
|
onClick () {
|
||||||
const { history, onClick: handleClick } = this.props;
|
const { history, linkTo } = this.props;
|
||||||
|
|
||||||
if (!handleClick) return;
|
if (!linkTo) return;
|
||||||
|
|
||||||
history.push('/');
|
history.push(linkTo);
|
||||||
|
|
||||||
handleClick();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onHover () {
|
onHover () {
|
||||||
@@ -35,11 +33,10 @@ class TowerLogo extends Component {
|
|||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { hover } = this.state;
|
const { hover } = this.state;
|
||||||
const { onClick: handleClick } = this.props;
|
|
||||||
|
|
||||||
let src = TowerLogoHeader;
|
let src = TowerLogoHeader;
|
||||||
|
|
||||||
if (hover && handleClick) {
|
if (hover) {
|
||||||
src = TowerLogoHeaderHover;
|
src = TowerLogoHeaderHover;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user