TF-2858 Implement store event attendance status on presentation layer
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/event_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/reply/calendar_event_accept_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/exceptions/calendar_event_exceptions.dart';
|
||||
@@ -19,6 +20,7 @@ void main() {
|
||||
final acceptCalendarEventInteractor = AcceptCalendarEventInteractor(calendarEventRepository);
|
||||
final accountId = AccountId(Id('123'));
|
||||
final blobId = Id('123321');
|
||||
final emailId = EmailId(Id('abcde'));
|
||||
|
||||
group('calendar event accept interactor test:', () {
|
||||
test('should emit CalendarEventAccepted when repo return data', () {
|
||||
@@ -32,10 +34,10 @@ void main() {
|
||||
|
||||
// assert
|
||||
expect(
|
||||
acceptCalendarEventInteractor.execute(accountId, {blobId}),
|
||||
acceptCalendarEventInteractor.execute(accountId, {blobId}, emailId),
|
||||
emitsInOrder([
|
||||
Right(CalendarEventAccepting()),
|
||||
Right(CalendarEventAccepted(calendarEventAcceptResponse))]));
|
||||
Right(CalendarEventAccepted(calendarEventAcceptResponse, emailId))]));
|
||||
});
|
||||
|
||||
test('should emit CalendarEventAcceptFailure when repo throw exception', () {
|
||||
@@ -45,7 +47,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
expect(
|
||||
acceptCalendarEventInteractor.execute(accountId, {blobId}),
|
||||
acceptCalendarEventInteractor.execute(accountId, {blobId}, emailId),
|
||||
emitsInOrder([
|
||||
Right(CalendarEventAccepting()),
|
||||
Left(CalendarEventAcceptFailure(exception: exception))]));
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/event_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/reply/calendar_event_reject_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/exceptions/calendar_event_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_reject_state.dart';
|
||||
@@ -16,6 +17,7 @@ void main() {
|
||||
final rejectCalendarEventInteractor = RejectCalendarEventInteractor(calendarEventRepository);
|
||||
final accountId = AccountId(Id('123'));
|
||||
final blobId = Id('123321');
|
||||
final emailId = EmailId(Id('abcde'));
|
||||
|
||||
group('calendar event reject interactor test:', () {
|
||||
test('should emit CalendarEventRejected when repo return data', () {
|
||||
@@ -29,10 +31,10 @@ void main() {
|
||||
|
||||
// assert
|
||||
expect(
|
||||
rejectCalendarEventInteractor.execute(accountId, {blobId}),
|
||||
rejectCalendarEventInteractor.execute(accountId, {blobId}, emailId),
|
||||
emitsInOrder([
|
||||
Right(CalendarEventRejecting()),
|
||||
Right(CalendarEventRejected(calendarEventRejectResponse))]));
|
||||
Right(CalendarEventRejected(calendarEventRejectResponse, emailId))]));
|
||||
});
|
||||
|
||||
test('should emit CalendarEventRejectFailure when repo throw exception', () {
|
||||
@@ -42,7 +44,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
expect(
|
||||
rejectCalendarEventInteractor.execute(accountId, {blobId}),
|
||||
rejectCalendarEventInteractor.execute(accountId, {blobId}, emailId),
|
||||
emitsInOrder([
|
||||
Right(CalendarEventRejecting()),
|
||||
Left(CalendarEventRejectFailure(exception: exception))]));
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/event_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/reply/calendar_event_maybe_response.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/exceptions/calendar_event_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_maybe_state.dart';
|
||||
@@ -16,6 +17,7 @@ void main() {
|
||||
final maybeCalendarEventInteractor = MaybeCalendarEventInteractor(calendarEventRepository);
|
||||
final accountId = AccountId(Id('123'));
|
||||
final blobId = Id('123321');
|
||||
final emailId = EmailId(Id('abcde'));
|
||||
|
||||
group('calendar event maybe interactor should emit expected states', () {
|
||||
test('when repo return data', () {
|
||||
@@ -29,10 +31,10 @@ void main() {
|
||||
|
||||
// assert
|
||||
expect(
|
||||
maybeCalendarEventInteractor.execute(accountId, {blobId}),
|
||||
maybeCalendarEventInteractor.execute(accountId, {blobId}, emailId),
|
||||
emitsInOrder([
|
||||
Right(CalendarEventMaybeReplying()),
|
||||
Right(CalendarEventMaybeSuccess(calendarEventMaybeResponse))]));
|
||||
Right(CalendarEventMaybeSuccess(calendarEventMaybeResponse, emailId))]));
|
||||
});
|
||||
|
||||
test('when repo throw exception', () {
|
||||
@@ -42,7 +44,7 @@ void main() {
|
||||
|
||||
// assert
|
||||
expect(
|
||||
maybeCalendarEventInteractor.execute(accountId, {blobId}),
|
||||
maybeCalendarEventInteractor.execute(accountId, {blobId}, emailId),
|
||||
emitsInOrder([
|
||||
Right(CalendarEventMaybeReplying()),
|
||||
Left(CalendarEventMaybeFailure(exception: exception))]));
|
||||
|
||||
@@ -10,6 +10,7 @@ import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:model/model.dart';
|
||||
@@ -28,6 +29,7 @@ import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/print_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_event_attendance_status_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_opened_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/view_attachment_for_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart';
|
||||
@@ -81,6 +83,7 @@ const fallbackGenerators = {
|
||||
MockSpec<AcceptCalendarEventInteractor>(),
|
||||
MockSpec<MaybeCalendarEventInteractor>(),
|
||||
MockSpec<RejectCalendarEventInteractor>(),
|
||||
MockSpec<StoreEventAttendanceStatusInteractor>(),
|
||||
])
|
||||
void main() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
@@ -112,6 +115,7 @@ void main() {
|
||||
final responsiveUtils = MockResponsiveUtils();
|
||||
final uuid = MockUuid();
|
||||
final printEmailInteractor = MockPrintEmailInteractor();
|
||||
final storeEventAttendanceStatusInteractor = MockStoreEventAttendanceStatusInteractor();
|
||||
|
||||
late SingleEmailController singleEmailController;
|
||||
|
||||
@@ -161,6 +165,7 @@ void main() {
|
||||
storeOpenedEmailInteractor,
|
||||
viewAttachmentForWebInteractor,
|
||||
printEmailInteractor,
|
||||
storeEventAttendanceStatusInteractor,
|
||||
);
|
||||
});
|
||||
|
||||
@@ -269,6 +274,7 @@ void main() {
|
||||
|
||||
group('calendar event reply test:', () {
|
||||
final blobId = Id('abc123');
|
||||
final emailId = EmailId(Id('xyz123'));
|
||||
final calendarEvent = CalendarEvent();
|
||||
|
||||
group('accept test:', () {
|
||||
@@ -290,11 +296,11 @@ void main() {
|
||||
calendarEventList: [calendarEvent])]));
|
||||
|
||||
// act
|
||||
singleEmailController.onCalendarEventReplyAction(EventActionType.yes);
|
||||
await untilCalled(acceptCalendarEventInteractor.execute(any, any));
|
||||
singleEmailController.onCalendarEventReplyAction(EventActionType.yes, emailId);
|
||||
await untilCalled(acceptCalendarEventInteractor.execute(any, any, any));
|
||||
|
||||
// assert
|
||||
verify(acceptCalendarEventInteractor.execute(testAccountId, {blobId})).called(1);
|
||||
verify(acceptCalendarEventInteractor.execute(testAccountId, {blobId}, emailId)).called(1);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -317,11 +323,11 @@ void main() {
|
||||
calendarEventList: [calendarEvent])]));
|
||||
|
||||
// act
|
||||
singleEmailController.onCalendarEventReplyAction(EventActionType.maybe);
|
||||
await untilCalled(maybeCalendarEventInteractor.execute(any, any));
|
||||
singleEmailController.onCalendarEventReplyAction(EventActionType.maybe, emailId);
|
||||
await untilCalled(maybeCalendarEventInteractor.execute(any, any, any));
|
||||
|
||||
// assert
|
||||
verify(maybeCalendarEventInteractor.execute(testAccountId, {blobId})).called(1);
|
||||
verify(maybeCalendarEventInteractor.execute(testAccountId, {blobId}, emailId)).called(1);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -344,11 +350,11 @@ void main() {
|
||||
calendarEventList: [calendarEvent])]));
|
||||
|
||||
// act
|
||||
singleEmailController.onCalendarEventReplyAction(EventActionType.no);
|
||||
await untilCalled(rejectCalendarEventInteractor.execute(any, any));
|
||||
singleEmailController.onCalendarEventReplyAction(EventActionType.no, emailId);
|
||||
await untilCalled(rejectCalendarEventInteractor.execute(any, any, any));
|
||||
|
||||
// assert
|
||||
verify(rejectCalendarEventInteractor.execute(testAccountId, {blobId})).called(1);
|
||||
verify(rejectCalendarEventInteractor.execute(testAccountId, {blobId}, emailId)).called(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user