test(i18n): add unit tests for localization functions
- Add tests for `loadLocale` to verify translations load correctly - Add tests for `t` to ensure fallback behavior for missing keys - Add tests for `getCurrentLanguage` to validate language detection logic
This commit is contained in:
32
src/i18n/__tests__/i18n.test.ts
Normal file
32
src/i18n/__tests__/i18n.test.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import { assertEquals } from 'https://deno.land/std@0.224.0/assert/mod.ts';
|
||||||
|
import { getCurrentLanguage, loadLocale, t } from '../mod.ts';
|
||||||
|
|
||||||
|
Deno.test('loadLocale lade Deutsche Übersetzung', async () => {
|
||||||
|
await loadLocale('de');
|
||||||
|
assertEquals(
|
||||||
|
t('error_write_units'),
|
||||||
|
'Fehler beim Schreiben der Units:',
|
||||||
|
);
|
||||||
|
assertEquals(
|
||||||
|
t('unit_written_service', { path: '/tmp/service' }),
|
||||||
|
'Service Unit geschrieben in: /tmp/service',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test('t gibt den Schlüssel zurück, wenn dieser nicht gefunden wird', () => {
|
||||||
|
const result = t('non_existent_key');
|
||||||
|
assertEquals(result, 'non_existent_key');
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test('getCurrentLanguage gibt die Fallback Sprache zurück', () => {
|
||||||
|
Deno.env.delete('SYSTEMD_TIMER_LANG');
|
||||||
|
Deno.env.delete('LC_ALL');
|
||||||
|
Deno.env.delete('LC_MESSAGES');
|
||||||
|
Deno.env.delete('LANG');
|
||||||
|
assertEquals(getCurrentLanguage(), 'en');
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test('getCurrentLanguage nutz die `SYSTEMD_TIMER_LANG`, wenn gesetzt', () => {
|
||||||
|
Deno.env.set('SYSTEMD_TIMER_LANG', 'de_DE.UTF-8');
|
||||||
|
assertEquals(getCurrentLanguage(), 'de');
|
||||||
|
});
|
Reference in New Issue
Block a user