1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-01 16:51:11 +03:00
awx/__tests__/components/Tooltip.test.jsx
2018-12-04 15:27:43 -05:00

56 lines
1.8 KiB
JavaScript

import React from 'react';
import { mount } from 'enzyme';
import Tooltip from '../../src/components/Tooltip';
describe('<Tooltip />', () => {
let elem;
let content;
let mouseOverHandler;
let mouseOutHandler;
test('initially renders without crashing', () => {
elem = mount(<Tooltip />);
expect(elem.length).toBe(1);
});
test('shows/hides with mouse over and leave', () => {
elem = mount(<Tooltip />);
mouseOverHandler = elem.find('.mouseOverHandler');
mouseOutHandler = elem.find('.mouseOutHandler');
expect(elem.state().isDisplayed).toBe(false);
elem.update();
content = elem.find('.pf-c-tooltip__content');
expect(content.length).toBe(0);
mouseOverHandler.props().onMouseOver();
expect(elem.state().isDisplayed).toBe(true);
elem.update();
content = elem.find('.pf-c-tooltip__content');
expect(content.length).toBe(1);
mouseOutHandler.props().onMouseLeave();
expect(elem.state().isDisplayed).toBe(false);
elem.update();
content = elem.find('.pf-c-tooltip__content');
expect(content.length).toBe(0);
});
test('shows/hides with focus and blur', () => {
elem = mount(<Tooltip />);
mouseOverHandler = elem.find('.mouseOverHandler');
mouseOutHandler = elem.find('.mouseOutHandler');
expect(elem.state().isDisplayed).toBe(false);
elem.update();
content = elem.find('.pf-c-tooltip__content');
expect(content.length).toBe(0);
mouseOverHandler.props().onFocus();
expect(elem.state().isDisplayed).toBe(true);
elem.update();
content = elem.find('.pf-c-tooltip__content');
expect(content.length).toBe(1);
mouseOutHandler.props().onBlur();
expect(elem.state().isDisplayed).toBe(false);
elem.update();
content = elem.find('.pf-c-tooltip__content');
expect(content.length).toBe(0);
});
});