Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/wojtekmaj/react-hooks. A collection of React Hooks.
hooks react react-hooks
Something went wrong. Try again.
1.6 kB · 73 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374import { describe, expect, it } from 'vitest';import { renderHook } from 'vitest-browser-react';import { act } from 'react';
import useToggle from './useToggle.js';
const itIfWindowDefined = it.runIf(typeof window !== 'undefined');
describe('useToggle()', () => { it('should return false value by default', async () => { const { result } = await renderHook(() => useToggle());
const [value] = result.current;
expect(value).toBe(false); });
it('should return default value properly if given', async () => { const { result } = await renderHook(() => useToggle(true));
const [value] = result.current;
expect(value).toBe(true); });
itIfWindowDefined('should toggle the flag properly', async () => { const { result } = await renderHook(() => useToggle());
const [value, toggleValue] = result.current;
expect(value).toBe(false);
act(() => { toggleValue(); });
const [value2, toggleValue2] = result.current;
expect(value2).toBe(true);
act(() => { toggleValue2(); });
const [value3] = result.current;
expect(value3).toBe(false); });
itIfWindowDefined('should toggle the flag properly with memoized toggleValue', async () => { const { result } = await renderHook(() => useToggle());
const [value, toggleValue] = result.current;
expect(value).toBe(false);
act(() => { toggleValue(); });
const [value2] = result.current;
expect(value2).toBe(true);
act(() => { toggleValue(); });
const [value3] = result.current;
expect(value3).toBe(false); });});