Update unit tests and lints

This commit is contained in:
Dominik Mielcarek 2023-09-12 23:22:42 +02:00 committed by shamoon
parent 4ab98a0447
commit ea3a2b91e5
2 changed files with 26 additions and 13 deletions

View File

@ -148,12 +148,19 @@ describe('SettingsService', () => {
const addClassSpy = jest.spyOn(settingsService.renderer, 'addClass') const addClassSpy = jest.spyOn(settingsService.renderer, 'addClass')
const removeClassSpy = jest.spyOn(settingsService.renderer, 'removeClass') const removeClassSpy = jest.spyOn(settingsService.renderer, 'removeClass')
const setAttributeSpy = jest.spyOn(settingsService.renderer, 'setAttribute')
const removeAttributeSpy = jest.spyOn(settingsService.renderer, 'removeAttribute')
settingsService.updateAppearanceSettings(true, true, '#fff000') settingsService.updateAppearanceSettings(true, true, '#fff000')
expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-light') expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-light')
expect(addClassSpy).toHaveBeenCalledWith( expect(removeAttributeSpy).toHaveBeenCalledWith(
document.body, document.documentElement,
'color-scheme-system' 'data-bs-theme'
)
expect(setAttributeSpy).toHaveBeenCalledWith(
document.documentElement,
'data-bs-theme',
'dark'
) )
expect( expect(
document.body.style.getPropertyValue('--pngx-primary-lightness') document.body.style.getPropertyValue('--pngx-primary-lightness')
@ -161,21 +168,27 @@ describe('SettingsService', () => {
settingsService.updateAppearanceSettings(false, false, '#000000') settingsService.updateAppearanceSettings(false, false, '#000000')
expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-light') expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-light')
expect(removeClassSpy).toHaveBeenCalledWith( expect(removeAttributeSpy).toHaveBeenCalledWith(
document.body, document.documentElement,
'color-scheme-system' 'data-bs-theme'
) )
expect(document.documentElement.hasAttribute('data-bs-theme')).toBe(false)
expect( expect(
document.body.style.getPropertyValue('--pngx-primary-lightness') document.body.style.getPropertyValue('--pngx-primary-lightness')
).toEqual('0%') ).toEqual('0%')
settingsService.updateAppearanceSettings(false, true, '#ffffff') settingsService.updateAppearanceSettings(false, true, '#ffffff')
expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-dark') expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-dark')
expect(removeClassSpy).toHaveBeenCalledWith( expect(removeAttributeSpy).toHaveBeenCalledWith(
document.body, document.documentElement,
'color-scheme-system' 'data-bs-theme'
)
expect(setAttributeSpy).toHaveBeenCalledWith(
document.documentElement,
'data-bs-theme',
'dark'
) )
expect(addClassSpy).toHaveBeenCalledWith(document.body, 'color-scheme-dark')
expect( expect(
document.body.style.getPropertyValue('--pngx-primary-lightness') document.body.style.getPropertyValue('--pngx-primary-lightness')
).toEqual('100%') ).toEqual('100%')

View File

@ -105,15 +105,15 @@ export class SettingsService {
darkModeEnabled ??= this.get(SETTINGS_KEYS.DARK_MODE_ENABLED) darkModeEnabled ??= this.get(SETTINGS_KEYS.DARK_MODE_ENABLED)
themeColor ??= this.get(SETTINGS_KEYS.THEME_COLOR) themeColor ??= this.get(SETTINGS_KEYS.THEME_COLOR)
const isSystemColorSchemeDark = window.matchMedia('(prefers-color-scheme: dark)').matches; const isSystemColorSchemeDark = window.matchMedia('(prefers-color-scheme: dark)').matches
// clearing state. // clearing state.
this._renderer.removeAttribute(this.document.documentElement, 'data-bs-theme'); this._renderer.removeAttribute(this.document.documentElement, 'data-bs-theme')
this._renderer.removeClass(this.document.body, 'primary-dark') this._renderer.removeClass(this.document.body, 'primary-dark')
this._renderer.removeClass(this.document.body, 'primary-light') this._renderer.removeClass(this.document.body, 'primary-light')
if ((darkModeUseSystem && isSystemColorSchemeDark) || darkModeEnabled) { if ((darkModeUseSystem && isSystemColorSchemeDark) || darkModeEnabled) {
this._renderer.setAttribute(this.document.documentElement, 'data-bs-theme', 'dark'); this._renderer.setAttribute(this.document.documentElement, 'data-bs-theme', 'dark')
} }
if (themeColor) { if (themeColor) {