1
0
mirror of https://github.com/kremalicious/portfolio.git synced 2024-06-30 05:31:44 +02:00

Merge pull request #150 from kremalicious/feature/coverage

increase test coverage
This commit is contained in:
Matthias Kretschmann 2019-07-14 00:50:19 +02:00 committed by GitHub
commit 265dd70a98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 2 deletions

View File

@ -58,6 +58,7 @@
"@babel/core": "^7.4.5",
"@babel/node": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"@react-mock/localstorage": "^0.1.2",
"@svgr/webpack": "^4.3.0",
"@testing-library/jest-dom": "^4.0.0",
"@testing-library/react": "^8.0.2",

View File

@ -38,7 +38,9 @@ describe('ThemeSwitch', () => {
)
const toggle = container.querySelector('input')
const label = container.querySelector('label')
expect(toggle.checked).toBeFalsy()
fireEvent.click(label)
fireEvent.change(toggle, { target: { checked: true } })
expect(toggle.checked).toBeTruthy()
})

View File

@ -6,7 +6,7 @@ import styles from './Repositories.module.scss'
export default class Repositories extends PureComponent {
static propTypes = {
repos: PropTypes.array.isRequired
repos: PropTypes.array
}
render() {

View File

@ -8,4 +8,9 @@ describe('Repositories', () => {
const { container } = render(<Repositories repos={repos} />)
expect(container.firstChild).toBeInTheDocument()
})
it('return nothing when no repos are passed', () => {
const { container } = render(<Repositories />)
expect(container.firstChild).not.toBeInTheDocument()
})
})

View File

@ -1,6 +1,8 @@
import React from 'react'
import { render } from '@testing-library/react'
import { render, fireEvent } from '@testing-library/react'
import { LocalStorageMock } from '@react-mock/localstorage'
import AppProvider from './AppProvider.jsx'
import { Consumer } from './createContext.jsx'
describe('AppProvider', () => {
it('renders correctly', () => {
@ -8,4 +10,29 @@ describe('AppProvider', () => {
expect(container.firstChild.textContent).toBe('Hello')
})
it('renders with dark detected in localStorage', () => {
const { getByTestId } = render(
<LocalStorageMock items={{ dark: 'true' }}>
<AppProvider>
<Consumer>
{state => (
<button data-testid="toggle" onClick={() => state.toggleDark()}>
Toggle
</button>
)}
</Consumer>
</AppProvider>
</LocalStorageMock>
)
fireEvent.click(getByTestId('toggle'))
})
it('renders with light detected in localStorage', () => {
render(
<LocalStorageMock items={{ dark: 'false' }}>
<AppProvider>Hello</AppProvider>
</LocalStorageMock>
)
})
})