fix(alarm): localize pre-notice countdown and fix snooze dismiss
Replace hardcoded Spanish pre-notice text with computed remaining minutes using l10n template passed via MethodChannel. Fix snooze dismiss in dead-app state with canPop guard and SystemNavigator.pop fallback.
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:pluriwave/l10n/gen/app_localizations.dart';
|
||||
|
||||
void main() {
|
||||
group('preNoticeCountdown ARB key', () {
|
||||
test('English returns expected sentence with minutes placeholder', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('en'));
|
||||
expect(l10n.preNoticeCountdown(30), 'Starts in 30 min');
|
||||
expect(l10n.preNoticeCountdown(1), 'Starts in 1 min');
|
||||
});
|
||||
|
||||
test('Spanish returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('es'));
|
||||
expect(l10n.preNoticeCountdown(30), 'Empieza en 30 min');
|
||||
});
|
||||
|
||||
test('Arabic returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('ar'));
|
||||
expect(l10n.preNoticeCountdown(5), 'يبدأ خلال 5 دقيقة');
|
||||
});
|
||||
|
||||
test('German returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('de'));
|
||||
expect(l10n.preNoticeCountdown(10), 'Startet in 10 Min.');
|
||||
});
|
||||
|
||||
test('French returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('fr'));
|
||||
expect(l10n.preNoticeCountdown(15), 'Démarre dans 15 min');
|
||||
});
|
||||
|
||||
test('Portuguese returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('pt'));
|
||||
expect(l10n.preNoticeCountdown(20), 'Começa em 20 min');
|
||||
});
|
||||
|
||||
test('Italian returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('it'));
|
||||
expect(l10n.preNoticeCountdown(25), 'Inizia tra 25 min');
|
||||
});
|
||||
|
||||
test('Japanese returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('ja'));
|
||||
expect(l10n.preNoticeCountdown(30), '30分後に開始');
|
||||
});
|
||||
|
||||
test('Russian returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('ru'));
|
||||
expect(l10n.preNoticeCountdown(30), 'Начнётся через 30 мин');
|
||||
});
|
||||
|
||||
test('Chinese returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('zh'));
|
||||
expect(l10n.preNoticeCountdown(30), '30分钟后开始');
|
||||
});
|
||||
|
||||
test('Hindi returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('hi'));
|
||||
expect(l10n.preNoticeCountdown(30), '30 मिनट में शुरू होगा');
|
||||
});
|
||||
|
||||
test('Bengali returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('bn'));
|
||||
expect(l10n.preNoticeCountdown(30), '30 মিনিটে শুরু হবে');
|
||||
});
|
||||
|
||||
test('Indonesian returns localized sentence', () {
|
||||
final l10n = lookupAppLocalizations(const Locale('id'));
|
||||
expect(l10n.preNoticeCountdown(30), 'Mulai dalam 30 menit');
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user