import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:emergency/core/country_locale_map.dart'; import 'package:emergency/l10n/app_localizations.dart'; void main() { group('resolveAppLocale', () { // Realistische Basis: die tatsächlich per ARB generierten Locales // (docs/plan.md, Abschnitt 8, AP7), statt einer synthetischen Liste. final supportedLocales = AppLocalizations.supportedLocales; test('bekanntes Land mit unterstützter Sprache liefert diese Sprache (DE -> de)', () { expect(resolveAppLocale('DE', supportedLocales), const Locale('de')); }); test('Ländercode ist case-insensitiv (de -> de)', () { expect(resolveAppLocale('de', supportedLocales), const Locale('de')); }); test( 'bekanntes Land mit einer NICHT unterstützten Sprache fällt auf Englisch zurück (JP -> ja, nicht unterstützt)', () { expect(countryLocaleMap['JP'], 'ja'); expect(supportedLocales.any((l) => l.languageCode == 'ja'), isFalse); expect(resolveAppLocale('JP', supportedLocales), const Locale('en')); }, ); test('unbekannter/nicht gemappter Ländercode fällt auf Englisch zurück', () { expect(countryLocaleMap.containsKey('ZZ'), isFalse); expect(resolveAppLocale('ZZ', supportedLocales), const Locale('en')); }); test('country == null (noch nicht ermittelt) fällt auf Englisch zurück', () { expect(resolveAppLocale(null, supportedLocales), const Locale('en')); }); test('weitere unterstützte Sprachen werden ebenfalls korrekt aufgelöst (FR -> fr, ES -> es)', () { expect(resolveAppLocale('FR', supportedLocales), const Locale('fr')); expect(resolveAppLocale('ES', supportedLocales), const Locale('es')); }); }); }