Skip to content

Commit d20245f

Browse files
chore(Avatar) update tests to new standarts (#7829)
* chore(Avatar) update tests to new standarts * add more tests * fix querying components
1 parent 2ce1891 commit d20245f

2 files changed

Lines changed: 72 additions & 5 deletions

File tree

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,74 @@
11
import * as React from 'react';
2-
import { render } from '@testing-library/react';
2+
import { render, screen } from '@testing-library/react';
33
import { Avatar } from '../Avatar';
44

5-
test('simple avatar', () => {
6-
const { asFragment } = render(<Avatar alt="avatar" src="test.png" border="light" />);
5+
test('Renders simple avatar', () => {
6+
render(
7+
<div data-testid="avatar">
8+
<Avatar alt="avatar" />
9+
</div>
10+
);
11+
expect(screen.getByTestId('avatar').firstChild).toBeVisible();
12+
});
13+
14+
test('Renders without any modifier class when border and size props are not passed', () => {
15+
render(<Avatar alt="avatar" />);
16+
expect(screen.getByRole('img')).toHaveClass('pf-c-avatar', { exact: true });
17+
});
18+
19+
test('Renders with class name pf-m-light when "light" is passed as border prop', () => {
20+
render(<Avatar alt="avatar" border="light" />);
21+
expect(screen.getByRole('img')).toHaveClass('pf-m-light');
22+
});
23+
24+
test('Renders with class name pf-m-dark when "dark" is passed as border prop', () => {
25+
render(<Avatar alt="avatar" border="dark" />);
26+
expect(screen.getByRole('img')).toHaveClass('pf-m-dark');
27+
});
28+
29+
test('Renders with class name pf-m-xl when "xl" is passed as size prop', () => {
30+
render(<Avatar alt="avatar" size="xl" />);
31+
expect(screen.getByRole('img')).toHaveClass('pf-m-xl');
32+
});
33+
34+
test('Renders with class name pf-m-lg when "lg" is passed as size prop', () => {
35+
render(<Avatar alt="avatar" size="lg" />);
36+
expect(screen.getByRole('img')).toHaveClass('pf-m-lg');
37+
});
38+
39+
test('Renders with class name pf-m-md when "md" is passed as size prop', () => {
40+
render(<Avatar alt="avatar" size="md" />);
41+
expect(screen.getByRole('img')).toHaveClass('pf-m-md');
42+
});
43+
44+
test('Renders with class name pf-m-sm when "sm" is passed as size prop', () => {
45+
render(<Avatar alt="avatar" size="sm" />);
46+
expect(screen.getByRole('img')).toHaveClass('pf-m-sm');
47+
});
48+
49+
test('Renders with custom class name when className prop is passed', () => {
50+
render(<Avatar alt="avatar" className="test-class" />);
51+
expect(screen.getByRole('img')).toHaveClass('test-class');
52+
});
53+
54+
test('Renders with passed src prop', () => {
55+
render(<Avatar alt="avatar" src="test.png" />);
56+
const image = screen.getByRole('img') as HTMLImageElement;
57+
expect(image.src).toMatch('test.png');
58+
});
59+
60+
test('Renders with passed alt prop', () => {
61+
render(<Avatar alt="avatar" />);
62+
expect(screen.getByRole('img')).toHaveProperty('alt', 'avatar');
63+
});
64+
65+
test('Renders with passed aria-label prop', () => {
66+
render(<Avatar alt="avatar" aria-label="Avatar test" />);
67+
expect(screen.getByRole('img')).toHaveAccessibleName('Avatar test');
68+
});
69+
70+
test('Matches the snapshot', () => {
71+
const { asFragment } = render(<Avatar alt="avatar" aria-label="Avatar test" src="test.png" className="test-class" />);
72+
773
expect(asFragment()).toMatchSnapshot();
874
});

packages/react-core/src/components/Avatar/__tests__/__snapshots__/Avatar.test.tsx.snap

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`simple avatar 1`] = `
3+
exports[`Matches the snapshot 1`] = `
44
<DocumentFragment>
55
<img
66
alt="avatar"
7-
class="pf-c-avatar pf-m-light"
7+
aria-label="Avatar test"
8+
class="pf-c-avatar test-class"
89
src="test.png"
910
/>
1011
</DocumentFragment>

0 commit comments

Comments
 (0)