From a242bbad18a3df8d20b9c9942adb1d69c435736c Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 5 Aug 2026 20:22:59 +0200 Subject: [PATCH] test(settings): add tests for switch Added test cases for the switch to test the default value functionality. --- .../components/__tests__/Switch.test.js | 48 +++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/features/settings/components/__tests__/Switch.test.js b/src/features/settings/components/__tests__/Switch.test.js index 5f8ee69..3b3348c 100644 --- a/src/features/settings/components/__tests__/Switch.test.js +++ b/src/features/settings/components/__tests__/Switch.test.js @@ -20,17 +20,23 @@ import { useSettingsStore } from '../../stores/settingsStore.js'; import { expect, describe, test } from 'vitest'; import { nextTick } from 'vue'; -const getWrapper = function getWrapper ({ i18n = 'switch1', translations = {} } = {}) { +const getWrapper = function getWrapper ({ + i18n = 'switch1', + defaultValue = undefined, + translations = {}, + piniaOptions = {} +} = {}) { return mountComponent(Switch, { attrs: { setting: { type: 'bool', name: 'switch', - i18n + i18n, + default: defaultValue }, path: 'switch' } - }, translations); + }, translations, [], piniaOptions); }; describe('Switch', () => { @@ -53,6 +59,42 @@ describe('Switch', () => { expect(switchElementClasses2).not.toContain('enabled'); }); + test('shows default value', () => { + const wrapper = getWrapper({ + defaultValue: true + }); + + const switchElement = wrapper.find('.switch-wrapper'); + expect(switchElement.classes('enabled')).toBeTruthy(); + }); + + test('shows stored value instead of default value', () => { + const wrapper = getWrapper({ + defaultValue: true, + piniaOptions: { + setupStores: () => { + const store = useSettingsStore(); + store.set('switch', false); + } + } + }); + + const switchElement = wrapper.find('.switch-wrapper'); + expect(switchElement.classes('enabled')).toBeFalsy(); + }); + + test('reacts on store change', async () => { + const wrapper = getWrapper(); + const store = useSettingsStore(); + + const switchElement = wrapper.find('.switch-wrapper'); + expect(switchElement.classes('enabled')).toBeFalsy(); + + store.set('switch', true); + await nextTick(); + expect(switchElement.classes('enabled')).toBeTruthy(); + }); + test('toggles value in store', async () => { const wrapper = getWrapper();