import React from 'react'
import { render, screen, act } from '@testing-library/react'
import '@testing-library/jest-dom'
import { CCollapse } from '../index'
test('loads and displays CCollapse component', async () => {
const { container } = render(Test)
expect(container).toMatchSnapshot()
})
test('CCollapse customize', async () => {
const { container } = render(Test)
expect(container.firstChild).toHaveClass('bazinga')
expect(container).toMatchSnapshot()
})
test('CCollapse use case test', async () => {
jest.useFakeTimers()
const { rerender } = render(Test)
expect(screen.getByText('Test')).toHaveClass('collapse')
expect(screen.getByText('Test')).not.toHaveClass('show')
expect(screen.getByText('Test')).not.toHaveClass('collapsing')
act(() => {
rerender(Test)
})
expect(screen.getByText('Test')).not.toHaveClass('collapse')
expect(screen.getByText('Test')).not.toHaveClass('show')
expect(screen.getByText('Test')).toHaveClass('collapsing')
act(() => {
jest.runAllTimers()
})
expect(screen.getByText('Test')).toHaveClass('collapse')
expect(screen.getByText('Test')).toHaveClass('show')
expect(screen.getByText('Test')).not.toHaveClass('collapsing')
act(() => {
rerender(Test)
})
expect(screen.getByText('Test')).not.toHaveClass('collapse')
expect(screen.getByText('Test')).not.toHaveClass('show')
expect(screen.getByText('Test')).toHaveClass('collapsing')
act(() => {
jest.runAllTimers()
})
expect(screen.getByText('Test')).toHaveClass('collapse')
expect(screen.getByText('Test')).not.toHaveClass('show')
expect(screen.getByText('Test')).not.toHaveClass('collapsing')
jest.useRealTimers()
})