import { describe, it, expect } from 'vitest'; import { t, setLocale } from '../src/i18n/messages'; describe('i18n', () => { it('returns English string by default or when set to EN', () => { setLocale('en'); expect(t('btnClip')).toBe('Clip page'); expect(t('title')).toBe('Clip to DocAdenice'); }); it('returns French strings when locale is FR', () => { setLocale('fr'); expect(t('btnClip')).toBe('Clipper la page'); expect(t('title')).toBe('Clipper vers DocAdenice'); }); it('returns a string for every key in both locales', () => { const keys = [ 'title', 'tabTitle', 'tabSettings', 'labelTitle', 'labelWorkspace', 'labelSpace', 'labelParent', 'labelSelection', 'selectionEmpty', 'selectionPresent', 'btnClip', 'btnClipping', 'settingsTitle', 'labelApiUrl', 'labelApiToken', 'labelDefaultWorkspace', 'labelDefaultSpace', 'btnSaveSettings', 'settingsSaved', 'successTitle', 'successOpen', 'errorTitle', 'errorNetwork', 'errorUnauthorized', 'errorGeneric', 'placeholderParent', 'optional', ] as const; for (const locale of ['en', 'fr'] as const) { setLocale(locale); for (const key of keys) { const val = t(key); expect(typeof val).toBe('string'); expect(val.length).toBeGreaterThan(0); } } }); });