kafka-ui/kafka-ui-react-app/src/lib/hooks/__tests__/useBoolean.spec.ts
2022-09-20 13:44:02 +03:00

66 lines
1.8 KiB
TypeScript

import { renderHook, act } from '@testing-library/react';
import useBoolean from 'lib/hooks/useBoolean';
describe('useBoolean CustomHook', () => {
it('should check true initial values', () => {
let initialValue = true;
const { result, rerender } = renderHook(() => useBoolean(initialValue));
expect(result.current.value).toBe(initialValue);
initialValue = false;
rerender();
// because state is in useState
expect(result.current.value).not.toBe(initialValue);
});
it('should check false initial values', () => {
let initialValue = false;
const { result, rerender } = renderHook(() => useBoolean(initialValue));
expect(result.current.value).toBe(initialValue);
initialValue = true;
rerender();
// because state is in useState
expect(result.current.value).not.toBe(initialValue);
});
it('should check setTrue function', () => {
const { result } = renderHook(() => useBoolean());
expect(result.current.value).toBeFalsy();
act(() => {
result.current.setTrue();
});
expect(result.current.value).toBeTruthy();
});
it('should check setFalse function', () => {
const { result } = renderHook(() => useBoolean());
expect(result.current.value).toBeFalsy();
act(() => {
result.current.setTrue();
});
expect(result.current.value).toBeTruthy();
act(() => {
result.current.setFalse();
});
expect(result.current.value).toBeFalsy();
});
it('should check setToggle function', () => {
const { result } = renderHook(() => useBoolean());
expect(result.current.value).toBeFalsy();
act(() => {
result.current.toggle();
});
expect(result.current.value).toBeTruthy();
act(() => {
result.current.toggle();
});
expect(result.current.value).toBeFalsy();
});
});