import React from 'react'; import { render, screen } from '@testing-library/react'; import CartArrowDownIcon from '@patternfly/react-icons/dist/esm/icons/cart-arrow-down-icon'; import { Button, ButtonVariant } from '../Button'; describe('Button', () => { Object.values(ButtonVariant).forEach(variant => { test(`${variant} button`, () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); }); test('it adds an aria-label to plain buttons', () => { const label = 'aria-label test'; render( ); expect(asFragment()).toMatchSnapshot(); }); test('isBlock', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('isDisabled', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('isDanger secondary', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('isDanger link', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('isAriaDisabled button', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('isAriaDisabled link button', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('isInline', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('size small', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('size large', () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); }); test('isLoading', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('isLoading inline link', () => { const { asFragment } = render( ); expect(asFragment()).toMatchSnapshot(); }); test('isLoading icon only', () => { const { asFragment } = render( ); expect(screen.getByText('anchor button')).toBeInTheDocument(); }); test('allows passing in a React Component as the component', () => { const Component = () =>
im a div
; render( ); expect(asFragment()).toMatchSnapshot(); }); test('setting tab index through props', () => { render(); expect(screen.getByRole('button')).toHaveAttribute('tabindex', '0'); }); });