36 lines
1013 B
TypeScript
36 lines
1013 B
TypeScript
|
|
import { describe, it, expect, beforeAll } from 'vitest';
|
||
|
|
import i18n from '@/i18n';
|
||
|
|
|
||
|
|
describe('i18n', () => {
|
||
|
|
beforeAll(async () => {
|
||
|
|
await i18n.changeLanguage('de');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('loads German locale by default', () => {
|
||
|
|
expect(i18n.language).toBe('de');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('translates key in German', () => {
|
||
|
|
expect(i18n.t('nav.dashboard')).toBe('Dashboard');
|
||
|
|
expect(i18n.t('nav.companies')).toBe('Firmen');
|
||
|
|
expect(i18n.t('auth.login')).toBe('Anmelden');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('can switch to English', async () => {
|
||
|
|
await i18n.changeLanguage('en');
|
||
|
|
expect(i18n.language).toBe('en');
|
||
|
|
expect(i18n.t('auth.login')).toBe('Sign In');
|
||
|
|
expect(i18n.t('nav.companies')).toBe('Companies');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('falls back to German for missing English keys', async () => {
|
||
|
|
await i18n.changeLanguage('en');
|
||
|
|
expect(i18n.t('app.name')).toBe('leocrm');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('switches back to German', async () => {
|
||
|
|
await i18n.changeLanguage('de');
|
||
|
|
expect(i18n.t('auth.login')).toBe('Anmelden');
|
||
|
|
});
|
||
|
|
});
|