TF-4068 Add E2E test for select identity as default

This commit is contained in:
dab246
2025-10-15 11:40:34 +07:00
committed by Dat H. Pham
parent 038aba0af3
commit dbb5568e4a
11 changed files with 201 additions and 1 deletions
@@ -0,0 +1,25 @@
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:flutter/material.dart';
import '../base/core_robot.dart';
import '../extensions/patrol_finder_extension.dart';
class IdentityCreatorRobot extends CoreRobot {
IdentityCreatorRobot(super.$);
Future<void> enterName(String name) async {
final finder = $(TextFieldBuilder).$(TextField);
final isTextFieldFocused = finder
.which<TextField>((view) => view.focusNode?.hasFocus ?? false)
.exists;
if (!isTextFieldFocused) {
await finder.tap();
}
await finder.enterTextWithoutTapAction(name);
}
Future<void> tapSaveIdentityButton() async {
await $.scrollUntilVisible(finder: $(#save_identity_button));
await $(#save_identity_button).tap();
}
}
@@ -16,7 +16,7 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
import '../base/core_robot.dart';
import '../exceptions/mailbox/null_inbox_unread_count_exception.dart';
import '../integration_test/exceptions/mailbox/null_quota_exception.dart';
import '../exceptions/mailbox/null_quota_exception.dart';
class MailboxMenuRobot extends CoreRobot {
MailboxMenuRobot(super.$);
@@ -0,0 +1,30 @@
import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/identities/widgets/identity_list_tile_builder.dart';
import '../base/core_robot.dart';
class ProfilesRobot extends CoreRobot {
ProfilesRobot(super.$);
Future<void> selectIdentityAsDefault(
String identityName,
ImagePaths imagePaths,
) async {
await $.scrollUntilVisible(finder: $(identityName));
await $(IdentityListTileBuilder)
.which<IdentityListTileBuilder>(
(widget) {
return widget.identity.name == identityName;
},
)
.$(InkWell)
.tap();
}
Future<void> tapCreateNewIdentityButton() async {
await $(#create_new_identity_button).tap();
}
}
@@ -15,6 +15,10 @@ class SettingRobot extends CoreRobot {
await $(#setting_preferences).tap();
}
Future<void> openProfilesMenuItem() async {
await $(#setting_profiles).tap();
}
Future<void> switchOnThreadSetting() async {
final threadSettingOn = $(ValueKey(AppLocalizations().thread))
.$(#setting_option_switch_on)