TF-3222 Hide reply calendar event action buttons if email is event reply (#3224)
This commit is contained in:
@@ -356,6 +356,12 @@ extension CalendarEventExtension on CalendarEvent {
|
||||
}
|
||||
|
||||
bool get isDisplayedEventReplyAction => method != null
|
||||
&& _methodIsRepliable
|
||||
&& organizer != null
|
||||
&& participants?.isNotEmpty == true;
|
||||
|
||||
bool get _methodIsRepliable =>
|
||||
method == EventMethod.request ||
|
||||
method == EventMethod.add ||
|
||||
method == EventMethod.counter;
|
||||
}
|
||||
@@ -3,6 +3,9 @@ import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:date_format/date_format.dart' as date_format;
|
||||
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/attendee/calendar_attendee.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/calendar_organizer.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/event_method.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_event_extension.dart';
|
||||
|
||||
void main() {
|
||||
@@ -73,4 +76,122 @@ void main() {
|
||||
expect(formattedDateString, expectedFormattedDateString);
|
||||
});
|
||||
});
|
||||
|
||||
group('calendar_event_extension::isDisplayedEventReplyAction::test:', () {
|
||||
CalendarEvent calendarEventFromEventMethod(EventMethod eventMethod) {
|
||||
return CalendarEvent(
|
||||
method: eventMethod,
|
||||
organizer: CalendarOrganizer(),
|
||||
participants: [CalendarAttendee()]
|
||||
);
|
||||
}
|
||||
|
||||
group('should return true', () {
|
||||
test(
|
||||
'when event method is request',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.request);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, true);
|
||||
});
|
||||
|
||||
test(
|
||||
'when event method is add',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.add);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, true);
|
||||
});
|
||||
|
||||
test(
|
||||
'when event method is counter',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.counter);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, true);
|
||||
});
|
||||
});
|
||||
|
||||
group('should return false', () {
|
||||
test(
|
||||
'when event method is publish',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.publish);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, false);
|
||||
});
|
||||
|
||||
test(
|
||||
'when event method is reply',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.reply);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, false);
|
||||
});
|
||||
|
||||
test(
|
||||
'when event method is cancel',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.cancel);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, false);
|
||||
});
|
||||
|
||||
test(
|
||||
'when event method is refresh',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.refresh);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, false);
|
||||
});
|
||||
|
||||
test(
|
||||
'when event method is declineCounter',
|
||||
() {
|
||||
// arrange
|
||||
final calendarEvent = calendarEventFromEventMethod(EventMethod.declineCounter);
|
||||
|
||||
// act
|
||||
final result = calendarEvent.isDisplayedEventReplyAction;
|
||||
|
||||
// assert
|
||||
expect(result, false);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user