import * as React from 'react'; import { render, screen } from '@testing-library/react'; import { Avatar } from '../Avatar'; test('Renders simple avatar', () => { render(
); expect(screen.getByTestId('avatar').firstChild).toBeVisible(); }); test('Renders without any modifier class when border and size props are not passed', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-v5-c-avatar', { exact: true }); }); test('Renders with class name pf-m-light when "light" is passed as border prop', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-m-light'); }); test('Renders with class name pf-m-dark when "dark" is passed as border prop', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-m-dark'); }); test('Renders with class name pf-m-xl when "xl" is passed as size prop', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-m-xl'); }); test('Renders with class name pf-m-lg when "lg" is passed as size prop', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-m-lg'); }); test('Renders with class name pf-m-md when "md" is passed as size prop', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-m-md'); }); test('Renders with class name pf-m-sm when "sm" is passed as size prop', () => { render(); expect(screen.getByRole('img')).toHaveClass('pf-m-sm'); }); test('Renders with custom class name when className prop is passed', () => { render(); expect(screen.getByRole('img')).toHaveClass('test-class'); }); test('Renders with passed src prop', () => { render(); const image = screen.getByRole('img') as HTMLImageElement; expect(image.src).toMatch('test.png'); }); test('Renders with passed alt prop', () => { render(); expect(screen.getByRole('img')).toHaveProperty('alt', 'avatar'); }); test('Renders with passed aria-label prop', () => { render(); expect(screen.getByRole('img')).toHaveAccessibleName('Avatar test'); }); test('Matches the snapshot', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); });