@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
192 lines (161 loc) • 5.94 kB
JavaScript
import React from 'react';
import { mount } from 'enzyme';
import { Button, Tooltip } from '@momentum-ui/react-collaboration';
describe('tests for <Tooltip />', () => {
beforeAll(() => {
jest.clearAllTimers();
jest.useFakeTimers();
});
it('should match SnapShot', () => {
const container = mount(
<Tooltip tooltip="test">
<div>Hi</div>
</Tooltip>
);
expect(container).toMatchSnapshot();
});
it('should render on click', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click">
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-tooltip__text').text()).toEqual('test');
});
it('should render on Hover', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="MouseEnter">
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('mouseenter');
jest.runAllTimers();
container.update();
expect(container.find('.md-tooltip__text').text()).toEqual('test');
});
it('should render on Focus', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Focus">
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('focus');
jest.runAllTimers();
container.update();
expect(container.find('.md-tooltip__text').text()).toEqual('test');
});
it('should parse direction correctly (top)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'top-center' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--top').length).toEqual(1);
});
it('should parse direction correctly (top-left)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'top-left' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--top').length).toEqual(1);
});
it('should parse direction correctly (top-right)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'top-right' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--top').length).toEqual(1);
});
it('should parse direction correctly (bottom)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'bottom-center' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--bottom').length).toEqual(1);
});
it('should parse direction correctly (bottom-left)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'bottom-left' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--bottom').length).toEqual(1);
});
it('should parse direction correctly (bottom-right)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'bottom-right' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--bottom').length).toEqual(1);
});
it('should parse direction correctly (left)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'left-center' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--left').length).toEqual(1);
});
it('should parse direction correctly (right)', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" popoverProps={{ direction: 'right-center' }}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-event-overlay--right').length).toEqual(1);
});
it('should set the width attribute when passed', () => {
const container = mount(
<Tooltip tooltip="test" tooltipTrigger="Click" width={100}>
<Button children="test button" ariaLabel="test" />
</Tooltip>
);
const button = container.find('button');
button.simulate('click');
jest.runAllTimers();
container.update();
expect(container.find('.md-tooltip__text').prop('style').width).toEqual('100px');
});
});