From f8e4a9d2643069deb24fb342dd340285ed1d8e56 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 27 Mar 2024 01:33:46 +0700 Subject: [PATCH] TF-2717 Write widget test for change language --- .../widgets/recipient_composer_widget.dart | 6 +- .../recipient_composer_widget_test.dart | 73 +++++++++++++++++-- 2 files changed, 69 insertions(+), 10 deletions(-) diff --git a/lib/features/composer/presentation/widgets/recipient_composer_widget.dart b/lib/features/composer/presentation/widgets/recipient_composer_widget.dart index c94831593..9f65a6d1e 100644 --- a/lib/features/composer/presentation/widgets/recipient_composer_widget.dart +++ b/lib/features/composer/presentation/widgets/recipient_composer_widget.dart @@ -371,9 +371,9 @@ class _RecipientComposerWidgetState extends State { bool get _isCollapse => _currentListEmailAddress.length > 1 && widget.expandMode == ExpandMode.COLLAPSE; - bool get _isAllRecipientInputEnabled => widget.fromState == PrefixRecipientState.enabled && - widget.ccState == PrefixRecipientState.enabled && - widget.bccState == PrefixRecipientState.enabled; + bool get _isAllRecipientInputEnabled => widget.fromState == PrefixRecipientState.enabled + && widget.ccState == PrefixRecipientState.enabled + && widget.bccState == PrefixRecipientState.enabled; List get _collapsedListEmailAddress => _isCollapse ? _currentListEmailAddress.sublist(0, 1) diff --git a/test/features/features/composer/recipient_composer_widget_test.dart b/test/features/features/composer/recipient_composer_widget_test.dart index 2c2832a13..e97d06325 100644 --- a/test/features/features/composer/recipient_composer_widget_test.dart +++ b/test/features/features/composer/recipient_composer_widget_test.dart @@ -11,6 +11,7 @@ import 'package:super_tag_editor/tag_editor.dart'; import 'package:tmail_ui_user/features/composer/presentation/widgets/recipient_composer_widget.dart'; import 'package:tmail_ui_user/features/composer/presentation/widgets/recipient_tag_item_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations_delegate.dart'; +import 'package:tmail_ui_user/main/localizations/language_code_constants.dart'; import 'package:tmail_ui_user/main/localizations/localization_service.dart'; void main() { @@ -144,7 +145,7 @@ void main() { expect( labelRecipientTagItemWidgetSize.width + deleteIconRecipientTagItemWidgetSize.width + avatarIconRecipientTagItemWidgetSize.width, - lessThanOrEqualTo(recipientTagItemWidgetSize.width) + lessThan(recipientTagItemWidgetSize.width) ); }); @@ -179,7 +180,7 @@ void main() { expect(recipientTagItemWidgetFinder, findsOneWidget); expect( prefixRecipientComposerWidgetSize.width + recipientTagItemWidgetSize.width, - lessThanOrEqualTo(360) + lessThan(360) ); }); @@ -219,7 +220,7 @@ void main() { expect( labelRecipientTagItemWidgetSize.width + deleteIconRecipientTagItemWidgetSize.width, - lessThanOrEqualTo(recipientTagItemWidgetSize.width) + lessThan(recipientTagItemWidgetSize.width) ); }); @@ -261,7 +262,7 @@ void main() { expect( labelRecipientTagItemWidgetSize.width + deleteIconRecipientTagItemWidgetSize.width + avatarIconRecipientTagItemWidgetSize.width, - lessThanOrEqualTo(recipientTagItemWidgetSize.width) + lessThan(recipientTagItemWidgetSize.width) ); }); @@ -299,7 +300,7 @@ void main() { expect(recipientTagItemWidgetFinder, findsOneWidget); expect( prefixRecipientComposerWidgetSize.width + recipientTagItemWidgetSize.width, - lessThanOrEqualTo(360) + lessThan(360) ); final labelRecipientTagItemWidgetFinder = find.byKey(Key('label_recipient_tag_item_${prefix.name}_0')); @@ -326,7 +327,7 @@ void main() { expect( totalSizeOfAllComponents, - lessThanOrEqualTo(recipientTagItemWidgetSize.width) + lessThan(recipientTagItemWidgetSize.width) ); }); @@ -402,7 +403,7 @@ void main() { expect(isExceededTextOverflow, equals(true)); }); - testWidgets('WHEN EmailAddress has address is too long AND display name is NULL\n' + testWidgets('WHEN EmailAddress has address short AND display name is NULL\n' 'RecipientTagItemWidget SHOULD have text display full', (tester) async { final listEmailAddress = [ EmailAddress(null, 'test123@example.com'), @@ -444,5 +445,63 @@ void main() { expect(isExceededTextOverflow, equals(false)); }); + + testWidgets('RecipientComponentWidget should display prefix To label correctly when the locale is fr-FR', (tester) async { + final listEmailAddress = [ + EmailAddress('test1', 'test1@example.com'), + ]; + + Get.updateLocale(const Locale(LanguageCodeConstants.french, 'FR')); + + final widget = makeTestableWidget( + child: RecipientComposerWidget( + prefix: prefix, + listEmailAddress: listEmailAddress, + imagePaths: imagePaths, + maxWidth: 360, + keyTagEditor: keyEmailTagEditor, + ), + ); + + await tester.pumpWidget(widget); + + await tester.pumpAndSettle(); + + final prefixRecipientComposerWidgetFinder = find.byKey(Key('prefix_${prefix.name}_recipient_composer_widget')); + final prefixRecipientComposerWidget = tester.widget(prefixRecipientComposerWidgetFinder); + + log('recipient_composer_widget_test::main: PREFIX_LABEL = ${prefixRecipientComposerWidget.data}'); + + expect(prefixRecipientComposerWidget.data, equals('À:')); + }); + + testWidgets('RecipientComponentWidget should display prefix To label correctly when the locale is vi-VN', (tester) async { + final listEmailAddress = [ + EmailAddress('test1', 'test1@example.com'), + ]; + + Get.updateLocale(const Locale(LanguageCodeConstants.vietnamese, 'VN')); + + final widget = makeTestableWidget( + child: RecipientComposerWidget( + prefix: prefix, + listEmailAddress: listEmailAddress, + imagePaths: imagePaths, + maxWidth: 360, + keyTagEditor: keyEmailTagEditor, + ), + ); + + await tester.pumpWidget(widget); + + await tester.pumpAndSettle(); + + final prefixRecipientComposerWidgetFinder = find.byKey(Key('prefix_${prefix.name}_recipient_composer_widget')); + final prefixRecipientComposerWidget = tester.widget(prefixRecipientComposerWidgetFinder); + + log('recipient_composer_widget_test::main: PREFIX_LABEL = ${prefixRecipientComposerWidget.data}'); + + expect(prefixRecipientComposerWidget.data, equals('Đến:')); + }); }); }