import * as React from 'react'
import { act, render, fireEvent } from '@testing-library/react'
import '@testing-library/jest-dom'
import { CAlert } from '../index'
test('loads and displays CAlert component', async () => {
let container: HTMLElement
await act(async () => {
const renderResult = render(Test)
container = renderResult.container
})
expect(container!).toMatchSnapshot()
})
test('CAlert customize', async () => {
let container: HTMLElement
await act(async () => {
const renderResult = render(
Test
)
container = renderResult.container
})
expect(container!).toMatchSnapshot()
expect(container!.firstChild).toHaveClass('bazinga')
expect(container!.firstChild).toHaveClass('bg-secondary')
expect(container!.firstChild).toHaveClass('text-white')
expect(container!.firstChild).toHaveClass('alert-dismissible')
})
test('CAlert click close button', async () => {
jest.useFakeTimers()
const onClose = jest.fn()
render(
Test
)
expect(onClose).toHaveBeenCalledTimes(0)
const btn = document.querySelector('.btn-close')
if (btn !== null) {
act(() => {
fireEvent.click(btn)
jest.runAllTimers()
})
}
expect(onClose).toHaveBeenCalledTimes(1)
jest.useRealTimers()
})