fixup! TF-3332 Prevent refresh when switching mailbox

This commit is contained in:
DatDang
2024-12-23 11:40:57 +07:00
committed by Dat H. Pham
parent fc55f5de8e
commit 3d6b2b1a7e
2 changed files with 180 additions and 0 deletions
@@ -43,6 +43,7 @@ import 'package:tmail_ui_user/features/thread/domain/usecases/refresh_changes_em
import 'package:tmail_ui_user/features/thread/domain/usecases/search_email_interactor.dart';
import 'package:tmail_ui_user/features/thread/domain/usecases/search_more_email_interactor.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/search_state.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/search_status.dart';
import 'package:tmail_ui_user/features/thread/presentation/thread_controller.dart';
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
import 'package:tmail_ui_user/main/utils/toast_manager.dart';
@@ -413,5 +414,55 @@ void main() {
expect(mockMailboxDashBoardController.emailsInCurrentMailbox.length, equals(0));
});
});
group('_registerObxStreamListener test:', () {
test(
'should call _getEmailsInMailboxInteractor.execute with getLatestChanges is false '
'when mailboxDashBoardController.selectedMailbox updated',
() async {
// arrange
final mailboxBefore = PresentationMailbox(MailboxId(Id('mailbox-before-id')));
final mailboxAfter = PresentationMailbox(MailboxId(Id('mailbox-after-id')));
final selectedMailbox = Rxn(mailboxBefore);
when(mockMailboxDashBoardController.sessionCurrent).thenReturn(SessionFixtures.aliceSession);
when(mockMailboxDashBoardController.accountId).thenReturn(Rxn(AccountFixtures.aliceAccountId));
when(mockMailboxDashBoardController.selectedMailbox).thenReturn(selectedMailbox);
when(mockMailboxDashBoardController.searchController).thenReturn(mockSearchController);
when(mockMailboxDashBoardController.dashBoardAction).thenReturn(Rxn());
when(mockMailboxDashBoardController.emailUIAction).thenReturn(Rxn());
when(mockMailboxDashBoardController.viewState).thenReturn(Rx(Right(UIState.idle)));
when(mockMailboxDashBoardController.emailsInCurrentMailbox).thenReturn(RxList());
when(mockMailboxDashBoardController.listEmailSelected).thenReturn(RxList());
when(mockMailboxDashBoardController.currentSelectMode).thenReturn(Rx(SelectMode.INACTIVE));
when(mockMailboxDashBoardController.filterMessageOption).thenReturn(Rx(FilterMessageOption.all));
when(mockSearchController.searchState).thenReturn(SearchState(SearchStatus.INACTIVE).obs);
// act
threadController.onInit();
mockMailboxDashBoardController.selectedMailbox.value = mailboxAfter;
await untilCalled(mockGetEmailsInMailboxInteractor.execute(
any,
any,
limit: anyNamed('limit'),
sort: anyNamed('sort'),
emailFilter: anyNamed('emailFilter'),
propertiesCreated: anyNamed('propertiesCreated'),
propertiesUpdated: anyNamed('propertiesUpdated'),
getLatestChanges: anyNamed('getLatestChanges'),
));
// assert
verify(mockGetEmailsInMailboxInteractor.execute(
any,
any,
limit: anyNamed('limit'),
sort: anyNamed('sort'),
emailFilter: anyNamed('emailFilter'),
propertiesCreated: anyNamed('propertiesCreated'),
propertiesUpdated: anyNamed('propertiesUpdated'),
getLatestChanges: false,
));
});
});
});
}