/* eslint-env node, jest */ import $ from 'jquery'; import { ThemeColorModeToggle } from '../../../resources/js/modules/themes-manager.ts'; describe('ThemeColorModeToggle event listener', () => { test('toggles the color mode', () => { document.documentElement.dataset.bsTheme = 'color2'; document.body.innerHTML = '
'; $.post = jest.fn().mockReturnValue({ 'done': (x: any) => x({ 'themeColorMode': 'color3' }) }); const themeColorModeToggle = document.getElementById('themeColorModeToggle') as HTMLSelectElement; themeColorModeToggle.addEventListener('change', ThemeColorModeToggle); themeColorModeToggle.selectedIndex = 3; themeColorModeToggle.dispatchEvent(new Event('change')); expect($.post).toHaveBeenCalledWith( 'https://example.com/index.php?route=/themes/set', { 'ajax_request': '1', 'themeColorMode': 'color3' } ); expect(document.querySelector('html').dataset.bsTheme).toEqual('color3'); }); });