@testing-library/react-hooks
Version:
Simple and complete React hooks testing utilities that encourage good testing practices.
31 lines (22 loc) • 949 B
text/typescript
import { useState, useCallback } from 'react'
describe('hydration errors tests', () => {
function useCounter() {
const [count, setCount] = useState(0)
const increment = useCallback(() => setCount(count + 1), [count])
const decrement = useCallback(() => setCount(count - 1), [count])
return { count, increment, decrement }
}
runForRenderers(['server', 'server/pure'], ({ renderHook }) => {
test('should throw error if component is rehydrated twice in a row', () => {
const { hydrate } = renderHook(() => useCounter())
hydrate()
expect(() => hydrate()).toThrow(Error('The component can only be hydrated once'))
})
test('should throw error if component tries to rerender without hydrating', () => {
const { rerender } = renderHook(() => useCounter())
expect(() => rerender()).toThrow(
Error('You must hydrate the component before you can rerender')
)
})
})
})