2019-04-16 03:59:21 +02:00
|
|
|
import React from 'react'
|
2021-03-13 22:34:52 +01:00
|
|
|
import { render, fireEvent, cleanup, waitFor } from '@testing-library/react'
|
2019-04-16 03:59:21 +02:00
|
|
|
import ThemeSwitch from './ThemeSwitch'
|
|
|
|
|
|
|
|
describe('ThemeSwitch', () => {
|
2019-04-27 23:53:26 +02:00
|
|
|
afterEach(cleanup)
|
|
|
|
|
2019-11-11 23:46:47 +01:00
|
|
|
it('renders correctly', async () => {
|
|
|
|
const { container } = render(<ThemeSwitch />)
|
2021-03-13 22:34:52 +01:00
|
|
|
await waitFor(() => container.querySelector('aside'))
|
2019-11-11 23:46:47 +01:00
|
|
|
expect(container.querySelector('aside')).toBeInTheDocument()
|
2019-04-27 23:53:26 +02:00
|
|
|
})
|
|
|
|
|
2019-11-11 23:46:47 +01:00
|
|
|
it('checkbox can be changed', async () => {
|
|
|
|
const { container } = render(<ThemeSwitch />)
|
2019-04-16 03:59:21 +02:00
|
|
|
|
2019-04-27 23:53:26 +02:00
|
|
|
const toggle = container.querySelector('input')
|
2019-07-14 00:43:09 +02:00
|
|
|
const label = container.querySelector('label')
|
2019-04-27 23:53:26 +02:00
|
|
|
expect(toggle.checked).toBeFalsy()
|
2019-07-14 00:43:09 +02:00
|
|
|
fireEvent.click(label)
|
2019-04-27 23:53:26 +02:00
|
|
|
fireEvent.change(toggle, { target: { checked: true } })
|
2019-04-16 03:59:21 +02:00
|
|
|
})
|
|
|
|
})
|