diff --git a/src/i18n/__tests__/i18n.test.ts b/src/i18n/__tests__/i18n.test.ts new file mode 100644 index 0000000..f0a93bf --- /dev/null +++ b/src/i18n/__tests__/i18n.test.ts @@ -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'); +});