import * as React from 'react' import { act, render, screen, waitFor } from '@testing-library/react' import '@testing-library/jest-dom' import { CTabPane, CTabContent } from '../index' test('loads and displays CTabPane component', async () => { let container: HTMLElement await act(async () => { const renderResult = render(Test) container = renderResult.container }) expect(container!).toMatchSnapshot() }) test('CTabPane customize', async () => { let container: HTMLElement await act(async () => { const renderResult = render( Test ) container = renderResult.container }) expect(container!).toMatchSnapshot() }) test('CTabContent use case test', async () => { jest.useFakeTimers() const { rerender } = render( Test ) expect(screen.getByText('Test')).not.toHaveClass('show') expect(screen.getByText('Test')).not.toHaveClass('active') act(() => { rerender( Test ) jest.runAllTimers() }) await waitFor(() => { expect(screen.getByText('Test')).toHaveClass('active') expect(screen.getByText('Test')).toHaveClass('show') }) act(() => { rerender( Test ) jest.runAllTimers() }) expect(screen.getByText('Test')).not.toHaveClass('show') expect(screen.getByText('Test')).not.toHaveClass('active') jest.useRealTimers() })