File tree Expand file tree Collapse file tree 3 files changed +15
-9
lines changed Expand file tree Collapse file tree 3 files changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -4,4 +4,5 @@ module.exports = createConfig('jest', {
4
4
setupFiles : [
5
5
'<rootDir>/src/setupTest.js' ,
6
6
] ,
7
+ testTimeout : 20000 ,
7
8
} ) ;
Original file line number Diff line number Diff line change @@ -33,16 +33,18 @@ export const useTrackColorSchemeChoice = () => {
33
33
useEffect ( ( ) => {
34
34
const trackColorSchemeChoice = ( { matches } ) => {
35
35
const preferredColorScheme = matches ? 'dark' : 'light' ;
36
-
37
36
sendTrackEvent ( 'openedx.ui.frontend-platform.prefers-color-scheme.selected' , { preferredColorScheme } ) ;
38
37
} ;
39
-
40
- const colorSchemeQuery = window . matchMedia ( '(prefers-color-scheme: dark)' ) ;
41
-
42
- // send user's initial choice
43
- trackColorSchemeChoice ( colorSchemeQuery ) ;
44
-
45
- colorSchemeQuery . addEventListener ( 'change' , trackColorSchemeChoice ) ;
46
- return ( ) => colorSchemeQuery . removeEventListener ( 'change' , trackColorSchemeChoice ) ;
38
+ const colorSchemeQuery = window . matchMedia ?. ( '(prefers-color-scheme: dark)' ) ;
39
+ if ( colorSchemeQuery ) {
40
+ // send user's initial choice
41
+ trackColorSchemeChoice ( colorSchemeQuery ) ;
42
+ colorSchemeQuery . addEventListener ( 'change' , trackColorSchemeChoice ) ;
43
+ }
44
+ return ( ) => {
45
+ if ( colorSchemeQuery ) {
46
+ colorSchemeQuery . removeEventListener ( 'change' , trackColorSchemeChoice ) ;
47
+ }
48
+ } ;
47
49
} , [ ] ) ;
48
50
} ;
Original file line number Diff line number Diff line change @@ -5,18 +5,21 @@ import { sendTrackEvent } from '../analytics';
5
5
jest . mock ( '../analytics' ) ;
6
6
7
7
const mockAddEventListener = jest . fn ( ) ;
8
+ const mockRemoveEventListener = jest . fn ( ) ;
8
9
let matchesMock ;
9
10
10
11
Object . defineProperty ( window , 'matchMedia' , {
11
12
value : jest . fn ( ( ) => ( {
12
13
addEventListener : mockAddEventListener ,
14
+ removeEventListener : mockRemoveEventListener ,
13
15
matches : matchesMock ,
14
16
} ) ) ,
15
17
} ) ;
16
18
17
19
describe ( 'useTrackColorSchemeChoice hook' , ( ) => {
18
20
afterEach ( ( ) => {
19
21
mockAddEventListener . mockClear ( ) ;
22
+ mockRemoveEventListener . mockClear ( ) ;
20
23
sendTrackEvent . mockClear ( ) ;
21
24
} ) ;
22
25
You can’t perform that action at this time.
0 commit comments