@@ -3,75 +3,56 @@ import { renderHook } from '@testing-library/react';
3
3
import useMediaQuery from '@/hooks/react-client/useMediaQuery' ;
4
4
5
5
describe ( 'useMediaQuery' , ( ) => {
6
- it ( 'should check for matchMedia support ' , ( ) => {
6
+ it ( 'should return undefined initially ' , ( ) => {
7
7
const { result } = renderHook ( ( ) => useMediaQuery ( 'media-query-mock' ) ) ;
8
-
9
- expect ( result . current ) . toBe ( undefined ) ;
8
+ expect ( result . current ) . toBe ( false ) ;
10
9
} ) ;
11
10
12
11
it ( 'should return true for matched query' , ( ) => {
13
12
Object . defineProperty ( window , 'matchMedia' , {
14
13
writable : true ,
15
- value : ( ) => ( {
14
+ value : query => ( {
16
15
matches : true ,
16
+ media : query ,
17
17
addEventListener : jest . fn ( ) ,
18
18
removeEventListener : jest . fn ( ) ,
19
19
} ) ,
20
20
} ) ;
21
21
22
22
const { result } = renderHook ( ( ) => useMediaQuery ( 'media-query-mock' ) ) ;
23
-
24
23
expect ( result . current ) . toBe ( true ) ;
25
24
} ) ;
26
25
27
26
it ( 'should return false for not-matched query' , ( ) => {
28
27
Object . defineProperty ( window , 'matchMedia' , {
29
28
writable : true ,
30
- value : ( ) => ( {
29
+ value : query => ( {
31
30
matches : false ,
31
+ media : query ,
32
32
addEventListener : jest . fn ( ) ,
33
33
removeEventListener : jest . fn ( ) ,
34
34
} ) ,
35
35
} ) ;
36
36
37
37
const { result } = renderHook ( ( ) => useMediaQuery ( 'media-query-mock' ) ) ;
38
-
39
38
expect ( result . current ) . toBe ( false ) ;
40
39
} ) ;
41
40
42
41
it ( 'should subscribe for media changes' , ( ) => {
43
42
const listenerMock = jest . fn ( ) . mockImplementation ( ( _ , handler ) => {
44
- handler ( ) ;
43
+ handler ( { matches : false } ) ;
45
44
} ) ;
46
45
47
46
Object . defineProperty ( window , 'matchMedia' , {
48
47
writable : true ,
49
- value : ( ) => ( {
48
+ value : query => ( {
50
49
matches : false ,
50
+ media : query ,
51
51
addEventListener : listenerMock ,
52
52
removeEventListener : jest . fn ( ) ,
53
53
} ) ,
54
54
} ) ;
55
55
56
- renderHook ( ( ) => useMediaQuery ( 'media-query-mock' ) ) ;
57
-
58
- expect ( listenerMock ) . toHaveBeenCalledTimes ( 1 ) ;
59
- } ) ;
60
-
61
- it ( "should support MediaQueryList's old event listeners" , ( ) => {
62
- const listenerMock = jest . fn ( ) . mockImplementation ( handler => {
63
- handler ( ) ;
64
- } ) ;
65
-
66
- Object . defineProperty ( window , 'matchMedia' , {
67
- writable : true ,
68
- value : ( ) => ( {
69
- matches : false ,
70
- addListener : listenerMock ,
71
- removeListener : jest . fn ( ) ,
72
- } ) ,
73
- } ) ;
74
-
75
56
renderHook ( ( ) => useMediaQuery ( 'media-query-mock' ) ) ;
76
57
expect ( listenerMock ) . toHaveBeenCalledTimes ( 1 ) ;
77
58
} ) ;
0 commit comments