TF-3487 Handle search email failure

This commit is contained in:
DatDang
2025-02-24 10:38:03 +07:00
committed by Dat H. Pham
parent 39cea85f86
commit 33b90d3c65
5 changed files with 29 additions and 9 deletions
@@ -1,3 +1,5 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
@@ -100,7 +102,7 @@ void main() {
test(
'should return Failure when threadRepository.searchEmails returns Failure',
() {
() async {
// arrange
final exception = Exception();
when(
@@ -119,15 +121,19 @@ void main() {
SessionFixtures.aliceSession,
AccountFixtures.aliceAccountId,
filter: EmailFilterCondition(text: 'test'),
);
).asBroadcastStream();
// assert
final firstState = await result.first;
final lastState = await result.last;
expect(firstState, Right(SearchingState()));
expect(
result,
emitsInOrder([
Right(SearchingState()),
Left(SearchEmailFailure(exception)),
]),
lastState.fold((failure) {
return failure is SearchEmailFailure
&& failure.exception == exception
&& failure.onRetry is Stream<Either<Failure, Success>>;
}, (success) => false),
true,
);
},
);