UNPKG

@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.

43 lines (32 loc) 1.27 kB
import { changeLanguage } from 'i18next'; import { describe, expect, it, vi } from 'vitest'; import { LOBE_LOCALE_COOKIE } from '@/const/locale'; import { LocaleMode } from '@/types/locale'; import { setCookie } from '@/utils/client/cookie'; import { switchLang } from './switchLang'; vi.mock('i18next', () => ({ changeLanguage: vi.fn(), })); vi.mock('./cookie', () => ({ setCookie: vi.fn(), })); describe('switchLang', () => { afterEach(() => { vi.resetAllMocks(); }); it('should change language to the specified locale', () => { const locale: LocaleMode = 'en-US'; switchLang(locale); expect(changeLanguage).toHaveBeenCalledWith(locale); expect(document.documentElement.lang).toBe(locale); expect(setCookie).toHaveBeenCalledWith(LOBE_LOCALE_COOKIE, locale, 365); }); it('should change language based on navigator.language when locale is "auto"', () => { const navigatorLanguage = 'fr'; vi.spyOn(navigator, 'language', 'get').mockReturnValue(navigatorLanguage); switchLang('auto'); expect(changeLanguage).toHaveBeenCalledWith(navigatorLanguage); expect(document.documentElement.lang).toBe(navigatorLanguage); expect(setCookie).toHaveBeenCalledWith(LOBE_LOCALE_COOKIE, undefined, 365); }); });