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.4 kB · 45 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546import { beforeEach, describe, expect, it, vi } from 'vitest';import { renderHook } from 'vitest-browser-react';
import useMatchMedia from './useMatchMedia.js';import usePrefersReducedTransparency from './usePrefersReducedTransparency.js';
vi.mock('/src/useMatchMedia.ts', () => ({ default: vi.fn(),}));
const itIfWindowDefined = it.runIf(typeof window !== 'undefined');const itIfWindowUndefined = it.runIf(typeof window === 'undefined');
describe('usePrefersReducedTransparency()', () => { beforeEach(() => { vi.mocked(useMatchMedia).mockReset(); });
itIfWindowDefined('calls useMatchMedia with correct query', async () => { vi.mocked(useMatchMedia).mockReturnValue(false);
await renderHook(() => usePrefersReducedTransparency());
expect(useMatchMedia).toHaveBeenCalledWith('(prefers-reduced-transparency: reduce)'); });
itIfWindowDefined.each([false, true])( 'returns useMatchMedia result properly', async (matches) => { vi.mocked(useMatchMedia).mockReturnValue(matches);
const { result } = await renderHook(() => usePrefersReducedTransparency());
expect(result.current).toBe(matches); }, );
itIfWindowUndefined('should return null', async () => { vi.mocked(useMatchMedia).mockReturnValue(null);
const { result } = await renderHook(() => usePrefersReducedTransparency());
expect(result.current).toBe(null); });});