import '@testing-library/jest-dom'; import React from 'react'; import userEvent from '@testing-library/user-event'; import mountTest from '../../../tests/shared/mountTest'; import rtlTest from '../../../tests/shared/rtlTest'; import { render, screen } from '../../../tests/utils'; import Button from '../../button/index'; import Card from '../index'; describe('Card', () => { mountTest(Card); rtlTest(Card); beforeAll(() => { jest.useFakeTimers(); }); afterAll(() => { jest.useRealTimers(); }); it('should still have padding when card which set padding to 0 is loading', () => { const { container } = render( xxx , ); expect(container.firstChild).toMatchSnapshot(); }); it('title should be vertically aligned', () => { const { container } = render( Button} style={{ width: 300 }}>

Card content

, ); expect(container.firstChild).toMatchSnapshot(); }); it('onTabChange should work', async () => { const tabList = [ { key: 'tab1', tab: 'tab1', }, { key: 'tab2', tab: 'tab2', }, ]; const onTabChange = jest.fn(); render( xxx , ); await userEvent.setup({ delay: null }).click(screen.getByRole('tab', { name: /tab2/i })); expect(onTabChange).toHaveBeenCalledWith('tab2'); }); it('should not render when actions is number', () => { const numberStub = 11; render( // @ts-ignore ignore for the wrong action value

Card content

, ); expect(screen.queryByText(numberStub)).not.toBeInTheDocument(); }); it('with tab props', () => { const { container } = render(

Card content

, ); expect(container.querySelectorAll('.ant-tabs-small').length === 0).toBeFalsy(); }); it('tab size extend card size', () => { const { container: largeContainer } = render(

Card content

, ); expect(largeContainer.querySelectorAll('.ant-tabs-large').length === 0).toBeFalsy(); const { container } = render(

Card content

, ); expect(container.querySelectorAll('.ant-tabs-small').length === 0).toBeFalsy(); }); it('get ref of card', () => { const cardRef = React.createRef(); render(

Card content

, ); expect(cardRef.current).toHaveClass('ant-card'); }); it('should show tab when tabList is empty', () => { const { container } = render(

Card content

, ); expect(container.querySelector('.ant-tabs')).toBeTruthy(); expect(container.querySelector('.ant-tabs-nav-add')).toBeTruthy(); }); it('correct pass tabList props', () => { const { container } = render( , ); expect(container.firstChild).toMatchSnapshot(); }); it('should support custom className', () => { const { container } = render(

Card content

, ); expect(container).toMatchSnapshot(); }); it('should support custom styles', () => { const { container } = render(

Card content

, ); expect(container).toMatchSnapshot(); }); });