import React from 'react'; import { render, screen } from '@testing-library/react'; import AddressBookIcon from '@patternfly/react-icons/dist/esm/icons/address-book-icon'; import { EmptyState, EmptyStateVariant } from '../EmptyState'; import { EmptyStateBody } from '../EmptyStateBody'; import { EmptyStateActions } from '../EmptyStateActions'; import { Button } from '../../Button'; import { EmptyStateHeader } from '../EmptyStateHeader'; import { EmptyStateFooter } from '../EmptyStateFooter'; import { EmptyStateIcon } from '../../../../dist/esm'; describe('EmptyState', () => { test('Main', () => { const { asFragment } = render( Defining HTTP Proxies that exist on your network allows you to perform various actions through those proxies. ); expect(asFragment()).toMatchSnapshot(); }); test('Main variant large', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('Main variant small', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('Main variant xs', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('Body', () => { render(); expect(screen.getByTestId('body-test-id')).toHaveClass('pf-v5-c-empty-state__body custom-empty-state-body'); }); test('Actions', () => { render(); expect(screen.getByTestId('actions-test-id')).toHaveClass('pf-v5-c-empty-state__actions'); }); test('Full height', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('Header with icon', () => { const { asFragment } = render(} />); expect(asFragment()).toMatchSnapshot(); }); test('Header with title text renders heading level 1 by default', () => { render(); expect(screen.getByRole('heading', { level: 1, name: 'Empty state' })).toHaveClass( 'pf-v5-c-empty-state__title-text' ); }); test('Header renders custom class passed via titleClassName', () => { render(); expect(screen.getByRole('heading', { level: 1, name: 'Empty state' })).toHaveClass('testTitleClassName'); }); test('Header renders the title as other heading levels when one is passed using headingLevel', () => { render(); expect(screen.getByRole('heading', { level: 3, name: 'Empty state' })).toHaveClass( 'pf-v5-c-empty-state__title-text' ); }); test('Headers render children', () => { render(Title text); expect(screen.getByText('Title text')).toBeVisible(); }); test('Footer', () => { render(); expect(screen.getByTestId('actions-test-id')).toHaveClass('custom-empty-state-footer'); }); });