portfolio/src/store/AppProvider.test.jsx

39 lines
1.1 KiB
React
Raw Normal View History

2019-04-16 21:21:01 +02:00
import React from 'react'
2019-07-14 00:43:09 +02:00
import { render, fireEvent } from '@testing-library/react'
import { LocalStorageMock } from '@react-mock/localstorage'
2019-04-28 22:30:20 +02:00
import AppProvider from './AppProvider.jsx'
2019-11-09 19:12:58 +01:00
import Context from './createContext.jsx'
2019-04-16 21:21:01 +02:00
describe('AppProvider', () => {
it('renders correctly', () => {
const { container } = render(<AppProvider>Hello</AppProvider>)
expect(container.firstChild.textContent).toBe('Hello')
})
2019-07-14 00:43:09 +02:00
it('renders with dark detected in localStorage', () => {
const { getByTestId } = render(
<LocalStorageMock items={{ dark: 'true' }}>
<AppProvider>
2019-11-09 19:12:58 +01:00
<Context.Consumer>
2019-07-14 00:43:09 +02:00
{state => (
<button data-testid="toggle" onClick={() => state.toggleDark()}>
Toggle
</button>
)}
2019-11-09 19:12:58 +01:00
</Context.Consumer>
2019-07-14 00:43:09 +02:00
</AppProvider>
</LocalStorageMock>
)
fireEvent.click(getByTestId('toggle'))
})
it('renders with light detected in localStorage', () => {
render(
<LocalStorageMock items={{ dark: 'false' }}>
<AppProvider>Hello</AppProvider>
</LocalStorageMock>
)
})
2019-04-16 21:21:01 +02:00
})