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()
})