-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathAvatar.test.tsx
52 lines (47 loc) · 1.65 KB
/
Avatar.test.tsx
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
import { render, screen } from '@testing-library/react';
import { Avatar } from './';
describe('Avatar', () => {
it('should render correctly with default props', () => {
render(<Avatar aria-label='ola' />);
expect(screen.getByRole('img')).toBeInTheDocument();
expect(screen.getByRole('img')).toHaveAttribute('data-ds-size', 'md');
expect(screen.getByRole('img')).toHaveAttribute(
'data-ds-variant',
'circle',
);
expect(screen.getByRole('img')).toHaveAttribute('data-ds-color', 'accent');
});
it('should render correctly with custom props', () => {
render(<Avatar size='lg' variant='square' aria-label='ola' />);
expect(screen.getByRole('img')).toBeInTheDocument();
expect(screen.getByRole('img')).toHaveAttribute('data-ds-size', 'lg');
expect(screen.getByRole('img')).toHaveAttribute(
'data-ds-variant',
'square',
);
});
it('should render initials when aria-label is set', () => {
render(<Avatar aria-label='Ola Nordmann'>ON</Avatar>);
expect(screen.getByText('ON')).toBeInTheDocument();
});
it('should render children', () => {
render(
<Avatar aria-label='Ola Nordmann'>
<img src='' alt='ola nordmann' data-testid='child-image' />
</Avatar>,
);
/* look for image with correct id */
expect(screen.getByTestId('child-image')).toBeInTheDocument();
});
it('children should have aria-hidden', () => {
render(
<Avatar aria-label='Ola Nordmann'>
<img src='' alt='ola nordmann' data-testid='child-image' />
</Avatar>,
);
expect(screen.getByTestId('child-image')).toHaveAttribute(
'aria-hidden',
'true',
);
});
});