TF-4367 Add E2E test for test case forward email is forwarded when change language on mobile

This commit is contained in:
dab246
2026-03-10 14:09:15 +07:00
committed by Dat H. Pham
parent 12b9ad4a40
commit 9e9e666518
8 changed files with 249 additions and 201 deletions
@@ -0,0 +1,29 @@
import 'package:flutter_test/flutter_test.dart';
import '../base/base_scenario.dart';
import '../models/provisioning_email.dart';
import '../robots/email_robot.dart';
import 'scenario_utils_mixin.dart';
mixin GenerateEmailScenarioMixin on BaseScenario, ScenarioUtilsMixin {
Future<void> generateEmailWithSubject({
required String emailUser,
required String subject,
}) async {
await provisionEmail(
[
ProvisioningEmail(
toEmail: emailUser,
subject: subject,
content: subject,
),
],
requestReadReceipt: false,
);
await $.pumpAndTrySettle();
}
Future<void> closeEmailDetailedView({required EmailRobot emailRobot}) async {
await emailRobot.onTapBackButton();
}
}
@@ -0,0 +1,19 @@
import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter_test/flutter_test.dart';
import '../robots/composer_robot.dart';
import '../robots/email_robot.dart';
mixin ScreenScenarioMixin {
Future<void> closeEmailDetailedView({required EmailRobot emailRobot}) async {
await emailRobot.onTapBackButton();
}
Future<void> closeComposer({
required ComposerRobot composerRobot,
required ImagePaths imagePaths,
}) async {
await composerRobot.tapCloseComposer(imagePaths);
await composerRobot.tapDiscardChanges();
}
}
@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import '../base/base_scenario.dart';
import '../robots/language_robot.dart';
import '../robots/mailbox_menu_robot.dart';
import '../robots/setting_robot.dart';
import '../robots/thread_robot.dart';
mixin SettingScenarioMixin on BaseScenario {
Future<void> goToSettingToChangeLanguage({
required ThreadRobot threadRobot,
required SettingRobot settingRobot,
required MailboxMenuRobot mailboxMenuRobot,
required LanguageRobot languageRobot,
required AppLocalizations appLocalizations,
required Locale locale,
}) async {
await threadRobot.openMailbox();
await mailboxMenuRobot.openSetting();
await _expectLanguageMenuItemVisible();
await settingRobot.openLanguageMenuItem();
await languageRobot.openLanguageContextMenu();
await languageRobot.selectLanguage(locale, appLocalizations);
await _expectLanguageViewByLocaleTitleVisible(appLocalizations);
await settingRobot.backToSettingsFromFirstLevel();
await settingRobot.closeSettings();
}
Future<void> _expectLanguageMenuItemVisible() async {
await $(#setting_language_region).scrollTo(
scrollDirection: AxisDirection.down,
);
await expectViewVisible($(#setting_language_region));
}
Future<void> _expectLanguageViewByLocaleTitleVisible(
AppLocalizations appLocalizations,
) async {
await expectViewVisible($(find.text(appLocalizations.language)));
}
}