generated from Seekra/repository-template
test(settings): add tests for switch
Added test cases for the switch to test the default value functionality.
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user