Skip to content

Commit 352153b

Browse files
authored
test(theme): increase coverage (#1079)
1 parent a8664d6 commit 352153b

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

src/utils/theme.test.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,32 @@
11
import { 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
});

src/utils/theme.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ export function getTheme(): Theme {
88
return Theme.LIGHT;
99
}
1010

11-
export const setLightMode = () =>
11+
export const setLightMode = () => {
1212
document.querySelector('html').classList.remove('dark');
13+
};
1314

14-
export const setDarkMode = () =>
15+
export const setDarkMode = () => {
1516
document.querySelector('html').classList.add('dark');
17+
};
1618

1719
export const setTheme = (mode?: Theme) => {
1820
switch (mode) {

0 commit comments

Comments
 (0)