11import { Theme } from '../types' ;
2- import { setTheme } from './theme' ;
2+ import { getTheme , setTheme } from './theme' ;
33
4- import * as appearanceHelpers from './theme' ;
5-
6- describe ( 'utils/appearance.ts' , ( ) => {
7- beforeAll ( ( ) => {
8- jest . spyOn ( appearanceHelpers , 'setLightMode' ) ;
9- jest . spyOn ( appearanceHelpers , 'setDarkMode' ) ;
10- } ) ;
4+ describe ( 'utils/theme.ts' , ( ) => {
5+ const htmlElement = document . createElement ( 'html' ) ;
116
127 beforeEach ( ( ) => {
13- // @ts -ignore
14- appearanceHelpers . setLightMode . mockReset ( ) ;
15- // @ts -ignore
16- appearanceHelpers . setDarkMode . mockReset ( ) ;
8+ document . querySelector = jest . fn ( ( ) => htmlElement ) ;
179 } ) ;
1810
1911 it ( 'should change to light mode' , ( ) => {
2012 setTheme ( Theme . LIGHT ) ;
21- expect ( appearanceHelpers . setLightMode ) . toHaveBeenCalledTimes ( 1 ) ;
13+ expect ( getTheme ( ) ) . toBe ( Theme . LIGHT ) ;
2214 } ) ;
2315
2416 it ( 'should change to dark mode' , ( ) => {
2517 setTheme ( Theme . DARK ) ;
26- expect ( appearanceHelpers . setDarkMode ) . toHaveBeenCalledTimes ( 1 ) ;
18+ expect ( getTheme ( ) ) . toBe ( Theme . DARK ) ;
2719 } ) ;
2820
2921 it ( "should use the system's mode - light" , ( ) => {
22+ Object . defineProperty ( window , 'matchMedia' , {
23+ writable : true ,
24+ value : jest . fn ( ) . mockImplementation ( ( query ) => ( {
25+ matches : false ,
26+ } ) ) ,
27+ } ) ;
3028 setTheme ( ) ;
31- expect ( appearanceHelpers . setLightMode ) . toHaveBeenCalledTimes ( 1 ) ;
29+ expect ( getTheme ( ) ) . toBe ( Theme . LIGHT ) ;
3230 } ) ;
3331
3432 it ( "should use the system's mode - dark" , ( ) => {
@@ -39,6 +37,6 @@ describe('utils/appearance.ts', () => {
3937 } ) ) ,
4038 } ) ;
4139 setTheme ( ) ;
42- expect ( appearanceHelpers . setDarkMode ) . toHaveBeenCalledTimes ( 1 ) ;
40+ expect ( getTheme ( ) ) . toBe ( Theme . DARK ) ;
4341 } ) ;
4442} ) ;
0 commit comments