1- import { describe , it , expect , vi , beforeEach , afterEach } from 'vitest'
1+ import { describe , it , expect , vi , beforeEach , afterEach , type MockInstance } from 'vitest'
22import { renderHook , act } from '@testing-library/react'
33import { useTheme } from '../hooks/useTheme'
44
@@ -27,7 +27,7 @@ function createMatchMediaMock(prefersDark: boolean) {
2727// ── Tests ────────────────────────────────────────────────────────────────────
2828
2929describe ( 'useTheme' , ( ) => {
30- let matchMediaSpy : ReturnType < typeof vi . spyOn >
30+ let matchMediaSpy : MockInstance < Window [ 'matchMedia' ] >
3131 let matchMediaMock : ReturnType < typeof createMatchMediaMock >
3232
3333 beforeEach ( ( ) => {
@@ -37,7 +37,7 @@ describe('useTheme', () => {
3737
3838 // Default: system prefers light
3939 matchMediaMock = createMatchMediaMock ( false )
40- matchMediaSpy = vi . spyOn ( window , 'matchMedia' ) . mockReturnValue ( matchMediaMock . mql as any )
40+ matchMediaSpy = vi . spyOn ( window , 'matchMedia' ) . mockReturnValue ( matchMediaMock . mql as unknown as MediaQueryList )
4141 } )
4242
4343 afterEach ( ( ) => {
@@ -57,7 +57,7 @@ describe('useTheme', () => {
5757
5858 it ( 'defaults to dark when system prefers dark' , ( ) => {
5959 matchMediaMock = createMatchMediaMock ( true )
60- matchMediaSpy . mockReturnValue ( matchMediaMock . mql as any )
60+ matchMediaSpy . mockReturnValue ( matchMediaMock . mql as unknown as MediaQueryList )
6161
6262 const { result } = renderHook ( ( ) => useTheme ( ) )
6363
@@ -126,7 +126,7 @@ describe('useTheme', () => {
126126 it ( 'falls back to system preference when localStorage has no theme' , ( ) => {
127127 // Start with system-dark and no saved preference
128128 matchMediaMock = createMatchMediaMock ( true )
129- matchMediaSpy . mockReturnValue ( matchMediaMock . mql as any )
129+ matchMediaSpy . mockReturnValue ( matchMediaMock . mql as unknown as MediaQueryList )
130130
131131 const { result } = renderHook ( ( ) => useTheme ( ) )
132132
@@ -158,7 +158,7 @@ describe('useTheme', () => {
158158
159159 // System prefers dark
160160 matchMediaMock = createMatchMediaMock ( true )
161- matchMediaSpy . mockReturnValue ( matchMediaMock . mql as any )
161+ matchMediaSpy . mockReturnValue ( matchMediaMock . mql as unknown as MediaQueryList )
162162
163163 const { result } = renderHook ( ( ) => useTheme ( ) )
164164
0 commit comments