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 { expect, describe, test } from 'vitest';
|
||||||
import { nextTick } from 'vue';
|
import { nextTick } from 'vue';
|
||||||
|
|
||||||
const getWrapper = function getWrapper ({ i18n = 'switch1', translations = {} } = {}) {
|
const getWrapper = function getWrapper ({
|
||||||
|
i18n = 'switch1',
|
||||||
|
defaultValue = undefined,
|
||||||
|
translations = {},
|
||||||
|
piniaOptions = {}
|
||||||
|
} = {}) {
|
||||||
return mountComponent(Switch, {
|
return mountComponent(Switch, {
|
||||||
attrs: {
|
attrs: {
|
||||||
setting: {
|
setting: {
|
||||||
type: 'bool',
|
type: 'bool',
|
||||||
name: 'switch',
|
name: 'switch',
|
||||||
i18n
|
i18n,
|
||||||
|
default: defaultValue
|
||||||
},
|
},
|
||||||
path: 'switch'
|
path: 'switch'
|
||||||
}
|
}
|
||||||
}, translations);
|
}, translations, [], piniaOptions);
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Switch', () => {
|
describe('Switch', () => {
|
||||||
@@ -53,6 +59,42 @@ describe('Switch', () => {
|
|||||||
expect(switchElementClasses2).not.toContain('enabled');
|
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 () => {
|
test('toggles value in store', async () => {
|
||||||
const wrapper = getWrapper();
|
const wrapper = getWrapper();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user