@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.
142 lines (110 loc) • 3.68 kB
text/typescript
import { UserStore } from '@/store/user';
import { UserState, initialState } from '@/store/user/initialState';
import { merge } from '@/utils/merge';
import { userGeneralSettingsSelectors } from './general';
describe('settingsSelectors', () => {
describe('generalConfig', () => {
it('should return general settings', () => {
const s: UserState = merge(initialState, {
settings: {
general: { fontSize: 12 },
},
});
const result = userGeneralSettingsSelectors.config(s as UserStore);
expect(result).toEqual({
animationMode: 'agile',
fontSize: 12,
highlighterTheme: 'lobe-theme',
mermaidTheme: 'lobe-theme',
transitionMode: 'fadeIn',
});
});
});
describe('fontSize', () => {
it('should return the fontSize', () => {
const s: UserState = merge(initialState, {
settings: {
general: { fontSize: 12 },
},
});
const result = userGeneralSettingsSelectors.fontSize(s as UserStore);
expect(result).toBe(12);
});
});
describe('neutralColor', () => {
it('should return undefined if general settings not exists', () => {
const s: UserState = merge(initialState, {
settings: {
general: undefined,
},
});
const result = userGeneralSettingsSelectors.neutralColor(s as UserStore);
expect(result).toBeUndefined();
});
it('should return undefined if neutralColor not set', () => {
const s: UserState = merge(initialState, {
settings: {
general: {},
},
});
const result = userGeneralSettingsSelectors.neutralColor(s as UserStore);
expect(result).toBeUndefined();
});
it('should return the neutralColor', () => {
const s: UserState = merge(initialState, {
settings: {
general: { neutralColor: '#000000' },
},
});
const result = userGeneralSettingsSelectors.neutralColor(s as UserStore);
expect(result).toBe('#000000');
});
});
describe('primaryColor', () => {
it('should return undefined if general settings not exists', () => {
const s: UserState = merge(initialState, {
settings: {
general: undefined,
},
});
const result = userGeneralSettingsSelectors.primaryColor(s as UserStore);
expect(result).toBeUndefined();
});
it('should return undefined if primaryColor not set', () => {
const s: UserState = merge(initialState, {
settings: {
general: {},
},
});
const result = userGeneralSettingsSelectors.primaryColor(s as UserStore);
expect(result).toBeUndefined();
});
it('should return the primaryColor', () => {
const s: UserState = merge(initialState, {
settings: {
general: { primaryColor: '#ffffff' },
},
});
const result = userGeneralSettingsSelectors.primaryColor(s as UserStore);
expect(result).toBe('#ffffff');
});
});
it('should return the highlighterTheme', () => {
const s: UserState = merge(initialState, {
settings: {
general: { highlighterTheme: 'lobe-theme' },
},
});
const result = userGeneralSettingsSelectors.highlighterTheme(s as UserStore);
expect(result).toBe('lobe-theme');
});
it('should return the mermaidTheme', () => {
const s: UserState = merge(initialState, {
settings: {
general: { mermaidTheme: 'lobe-theme' },
},
});
const result = userGeneralSettingsSelectors.mermaidTheme(s as UserStore);
expect(result).toBe('lobe-theme');
});
});