UNPKG

daynitejs

Version:

A lightweight JavaScript library for toggling light and dark themes.

37 lines (31 loc) 1.15 kB
/** * Unit tests for system preference utilities. */ import { getSystemTheme } from '../src/utils/system.js'; describe('System Utils', () => { let originalMatchMedia; beforeEach(() => { originalMatchMedia = window.matchMedia; window.matchMedia = jest.fn(); }); afterEach(() => { window.matchMedia = originalMatchMedia; }); test('getSystemTheme returns dark when prefers-color-scheme is dark', () => { jest.setTimeout(10000); window.matchMedia.mockReturnValue({ matches: true }); expect(getSystemTheme()).toBe('dark'); expect(window.matchMedia).toHaveBeenCalledWith('(prefers-color-scheme: dark)'); }); test('getSystemTheme returns light when prefers-color-scheme is light', () => { jest.setTimeout(10000); window.matchMedia.mockReturnValue({ matches: false }); expect(getSystemTheme()).toBe('light'); expect(window.matchMedia).toHaveBeenCalledWith('(prefers-color-scheme: dark)'); }); test('getSystemTheme returns light when matchMedia is unavailable', () => { jest.setTimeout(10000); window.matchMedia = undefined; expect(getSystemTheme()).toBe('light'); }); });