E2E Fix integration test Twake Mail v0.18.4

E2E Fix integration test Twake Mail v0.18.4
This commit is contained in:
Dang Dat
2025-09-09 10:22:14 +07:00
committed by Dat H. Pham
parent fb53ba6568
commit c6ace7a9b5
29 changed files with 97 additions and 114 deletions
@@ -18,6 +18,7 @@ class ContextMenuDialogView extends StatelessWidget {
child: Column(
mainAxisSize: MainAxisSize.min,
children: actions.map((menuAction) => ContextMenuDialogItem(
key: menuAction.key != null ? Key(menuAction.key!) : null,
menuAction: menuAction,
onContextMenuActionClick: onContextMenuActionClick,
)).toList(),
@@ -6,11 +6,12 @@ typedef OnContextMenuActionClick = void Function(ContextMenuItemAction action);
abstract class ContextMenuItemAction<T> with EquatableMixin {
final T action;
final String? key;
ContextMenuItemAction(this.action);
ContextMenuItemAction(this.action, {this.key});
@override
List<Object?> get props => [action];
List<Object?> get props => [action, key];
String get actionName;
@@ -33,7 +34,7 @@ mixin OptionalSelectedIcon<T> {
abstract class ContextMenuItemActionRequiredIcon<T>
extends ContextMenuItemAction<T> with OptionalIcon {
ContextMenuItemActionRequiredIcon(super.action);
ContextMenuItemActionRequiredIcon(super.action, {super.key});
}
abstract class ContextMenuItemActionRequiredSelectedIcon<T>
@@ -41,12 +42,12 @@ abstract class ContextMenuItemActionRequiredSelectedIcon<T>
final T? selectedAction;
ContextMenuItemActionRequiredSelectedIcon(super.action, this.selectedAction);
ContextMenuItemActionRequiredSelectedIcon(super.action, this.selectedAction, {super.key});
}
abstract class ContextMenuItemActionRequiredFull<T>
extends ContextMenuItemAction<T> with OptionalIcon, OptionalSelectedIcon<T> {
final T selectedAction;
ContextMenuItemActionRequiredFull(super.action, this.selectedAction);
ContextMenuItemActionRequiredFull(super.action, this.selectedAction, {super.key});
}
@@ -37,6 +37,7 @@ class EmailAddressWithCopyWidget extends StatelessWidget {
),
if (label.isNotEmpty)
TMailButtonWidget.fromIcon(
key: const ValueKey('copy_email_address'),
icon: copyLabelIcon,
backgroundColor: Colors.transparent,
iconSize: 20,
@@ -13,8 +13,9 @@ class ContextItemEmailAction
ContextItemEmailAction(
super.action,
this.appLocalizations,
this.imagePaths,
);
this.imagePaths, {
super.key,
});
@override
String get actionIcon => action.getIcon(imagePaths);
@@ -591,6 +591,7 @@ class EmailActionReactor {
action,
AppLocalizations.of(currentContext!),
imagePaths,
key: '${action.name}_action',
),
)
.toList(),
@@ -162,7 +162,6 @@ class EmailViewAppBarWidget extends StatelessWidget {
);
Widget _getMoveEmailButton(AppLocalizations appLocalizations) => TMailButtonWidget.fromIcon(
key: const Key('email_detailed_move_email_button'),
icon: _imagePaths.icMoveEmail,
iconSize: EmailViewAppBarWidgetStyles.buttonIconSize,
iconColor: EmailViewAppBarWidgetStyles.iconColor,
@@ -177,7 +176,6 @@ class EmailViewAppBarWidget extends StatelessWidget {
);
Widget _getMarkStarButton(AppLocalizations applocalizations) => TMailButtonWidget.fromIcon(
key: const Key('email_detailed_star_button'),
icon: presentationEmail.hasStarred
? _imagePaths.icStar
: _imagePaths.icUnStar,
@@ -200,7 +198,6 @@ class EmailViewAppBarWidget extends StatelessWidget {
);
Widget _getDeleteButton(AppLocalizations applocalizations) => TMailButtonWidget.fromIcon(
key: const Key('email_detailed_delete_email_button'),
icon: _imagePaths.icDeleteComposer,
iconSize: EmailViewAppBarWidgetStyles.deleteButtonIconSize,
iconColor: EmailViewAppBarWidgetStyles.iconColor,
@@ -20,6 +20,7 @@ extension HandleSelectMessageFilterExtension on ThreadController {
selectedOption,
AppLocalizations.of(context),
imagePaths,
key: '${filter.name}_filter',
);
}).toList();
@@ -12,8 +12,9 @@ class ContextItemFilterMessageOptionAction
super.action,
super.selectedAction,
this.appLocalizations,
this.imagePaths,
);
this.imagePaths, {
super.key,
});
@override
String get actionIcon => action.getContextMenuIcon(imagePaths);