@@ -21,6 +21,9 @@ describe('MediaQueryList', () => {
21
21
expect (
22
22
new MediaQueryList ( { window : window , media : 'NOT all AND (prefers-COLOR-scheme)' } ) . media
23
23
) . toBe ( 'not all and (prefers-color-scheme)' ) ;
24
+ expect (
25
+ new MediaQueryList ( { window : window , media : 'NOT all AND (prefers-REDUCED-motion)' } ) . media
26
+ ) . toBe ( 'not all and (prefers-reduced-motion)' ) ;
24
27
expect ( new MediaQueryList ( { window : window , media : 'all and (hover: none' } ) . media ) . toBe (
25
28
'all and (hover: none)'
26
29
) ;
@@ -46,6 +49,15 @@ describe('MediaQueryList', () => {
46
49
expect ( new MediaQueryList ( { window : window , media : '(prefers-color-scheme)' } ) . media ) . toBe (
47
50
'(prefers-color-scheme)'
48
51
) ;
52
+ expect ( new MediaQueryList ( { window : window , media : 'prefers-reduced-motion' } ) . media ) . toBe (
53
+ ''
54
+ ) ;
55
+ expect ( new MediaQueryList ( { window : window , media : '(prefers-reduced-motion' } ) . media ) . toBe (
56
+ 'not all'
57
+ ) ;
58
+ expect ( new MediaQueryList ( { window : window , media : '(prefers-reduced-motion)' } ) . media ) . toBe (
59
+ '(prefers-reduced-motion)'
60
+ ) ;
49
61
} ) ;
50
62
} ) ;
51
63
@@ -268,6 +280,36 @@ describe('MediaQueryList', () => {
268
280
) . toBe ( false ) ;
269
281
} ) ;
270
282
283
+ it ( 'Handles "prefers-reduced-motion".' , ( ) => {
284
+ expect (
285
+ new MediaQueryList ( { window : window , media : '(prefers-reduced-motion)' } ) . matches
286
+ ) . toBe ( false ) ;
287
+ expect (
288
+ new MediaQueryList ( { window : window , media : '(prefers-reduced-motion: reduce)' } ) . matches
289
+ ) . toBe ( false ) ;
290
+ expect (
291
+ new MediaQueryList ( { window : window , media : '(prefers-reduced-motion: no-preference)' } )
292
+ . matches
293
+ ) . toBe ( true ) ;
294
+
295
+ window = new Window ( {
296
+ width : 1024 ,
297
+ height : 768 ,
298
+ settings : { device : { prefersReducedMotion : 'reduce' } }
299
+ } ) ;
300
+
301
+ expect (
302
+ new MediaQueryList ( { window : window , media : '(prefers-reduced-motion)' } ) . matches
303
+ ) . toBe ( true ) ;
304
+ expect (
305
+ new MediaQueryList ( { window : window , media : '(prefers-reduced-motion: reduce)' } ) . matches
306
+ ) . toBe ( true ) ;
307
+ expect (
308
+ new MediaQueryList ( { window : window , media : '(prefers-reduced-motion: no-preference)' } )
309
+ . matches
310
+ ) . toBe ( false ) ;
311
+ } ) ;
312
+
271
313
it ( 'Handles "hover".' , ( ) => {
272
314
expect ( new MediaQueryList ( { window : window , media : '(hover)' } ) . matches ) . toBe ( true ) ;
273
315
expect ( new MediaQueryList ( { window : window , media : '(hover: invalid)' } ) . matches ) . toBe ( false ) ;
0 commit comments