-
Notifications
You must be signed in to change notification settings - Fork 264
Expand file tree
/
Copy pathMiradorMenuButton.test.jsx
More file actions
59 lines (43 loc) · 1.89 KB
/
MiradorMenuButton.test.jsx
File metadata and controls
59 lines (43 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import { render, screen } from '@tests/utils/test-utils';
import userEvent from '@testing-library/user-event';
import { MiradorMenuButton } from '../../../src/components/MiradorMenuButton';
/**
* Helper function to wrap creating a MiradorMenuButton component
*/
function createWrapper(props) {
return render(
<MiradorMenuButton aria-label="The Label" {...props}>
icon
</MiradorMenuButton>,
);
}
describe('MiradorMenuButton', () => {
it('renders the given a Tooltip -> IconLabel -> Icon', async () => {
const user = userEvent.setup();
createWrapper();
expect(screen.getByRole('button')).toHaveAccessibleName('The Label');
expect(screen.getByRole('button')).toHaveTextContent('icon');
await user.hover(screen.getByRole('button'));
expect(await screen.findByRole('tooltip')).toHaveTextContent('The Label');
});
it('does not render the Tooltip if the button is disabled', () => {
createWrapper({ disabled: true });
expect(screen.getByRole('button')).toBeDisabled();
});
it('spreads TooltipProps to the Tooltip component', async () => {
const user = userEvent.setup();
createWrapper({ TooltipProps: { placement: 'left-start' } });
await user.hover(screen.getByRole('button'));
expect(await screen.findByRole('tooltip')).toHaveTextContent('The Label');
expect(screen.getByText('The Label')).toHaveClass('MuiTooltip-tooltipPlacementLeft');
});
it('spreads any other props to IconButton', () => {
createWrapper({ color: 'inherit' });
expect(screen.getByRole('button')).toHaveClass('MuiIconButton-colorInherit');
});
it('wraps the child component in a badge if the badge prop is set to true (and passes BadgeProps)', () => {
createWrapper({ badge: true, BadgeProps: { badgeContent: 3 } });
expect(screen.getByRole('button')).toHaveTextContent('icon3');
expect(screen.getByText('3')).toHaveClass('MuiBadge-badge');
});
});