@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
83 lines (64 loc) • 2.85 kB
text/typescript
import { describe, expect, it } from 'vitest';
import { UserStore } from '@/store/user';
import { initialPreferenceState } from './initialState';
import { preferenceSelectors } from './selectors';
describe('preferenceSelectors', () => {
let store: UserStore;
beforeEach(() => {
store = {
...initialPreferenceState,
} as unknown as UserStore;
});
describe('useCmdEnterToSend', () => {
it('should return the value of useCmdEnterToSend preference', () => {
store.preference.useCmdEnterToSend = true;
expect(preferenceSelectors.useCmdEnterToSend(store)).toBe(true);
store.preference.useCmdEnterToSend = false;
expect(preferenceSelectors.useCmdEnterToSend(store)).toBe(false);
});
it('should return false if useCmdEnterToSend preference is undefined', () => {
store.preference.useCmdEnterToSend = undefined;
expect(preferenceSelectors.useCmdEnterToSend(store)).toBe(false);
});
});
describe('userAllowTrace', () => {
it('should return the value of telemetry preference', () => {
store.preference.telemetry = true;
expect(preferenceSelectors.userAllowTrace(store)).toBe(true);
store.preference.telemetry = false;
expect(preferenceSelectors.userAllowTrace(store)).toBe(false);
store.preference.telemetry = null;
expect(preferenceSelectors.userAllowTrace(store)).toBe(null);
});
});
describe('hideSyncAlert', () => {
it('should return the value of hideSyncAlert preference', () => {
store.preference.hideSyncAlert = true;
expect(preferenceSelectors.hideSyncAlert(store)).toBe(true);
store.preference.hideSyncAlert = false;
expect(preferenceSelectors.hideSyncAlert(store)).toBe(false);
store.preference.hideSyncAlert = undefined;
expect(preferenceSelectors.hideSyncAlert(store)).toBeUndefined();
});
});
describe('hideSettingsMoveGuide', () => {
it('should return the value of moveSettingsToAvatar guide preference', () => {
store.preference.guide = { moveSettingsToAvatar: true };
expect(preferenceSelectors.hideSettingsMoveGuide(store)).toBe(true);
store.preference.guide = { moveSettingsToAvatar: false };
expect(preferenceSelectors.hideSettingsMoveGuide(store)).toBe(false);
});
it('should return undefined if guide preference is undefined', () => {
store.preference.guide = undefined;
expect(preferenceSelectors.hideSettingsMoveGuide(store)).toBeUndefined();
});
});
describe('isPreferenceInit', () => {
it('should return the value of isPreferenceInit state', () => {
store.isUserStateInit = true;
expect(preferenceSelectors.isPreferenceInit(store)).toBe(true);
store.isUserStateInit = false;
expect(preferenceSelectors.isPreferenceInit(store)).toBe(false);
});
});
});