Skip to content

Commit 81598a7

Browse files
dab246hoangdat
authored andcommitted
TF-3461 Add integration test for sort by message size
Signed-off-by: dab246 <tdvu@linagora.com>
1 parent 192dad1 commit 81598a7

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

integration_test/scenarios/search_email_with_sort_order_scenario.dart

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import 'package:collection/collection.dart';
33
import 'package:core/domain/extensions/list_datetime_extension.dart';
44
import 'package:flutter_test/flutter_test.dart';
5+
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
56
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
67
import 'package:tmail_ui_user/features/search/email/presentation/search_email_view.dart';
78
import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_builder.dart';
@@ -77,8 +78,10 @@ class SearchEmailWithSortOrderScenario extends BaseTestScenario {
7778
case EmailSortOrderType.relevance:
7879
break;
7980
case EmailSortOrderType.sizeAscending:
81+
await _expectEmailListSortedCorrectBySizeAscending(listUsername: listUsername);
8082
break;
8183
case EmailSortOrderType.sizeDescending:
84+
await _expectEmailListSortedCorrectBySizeDescending(listUsername: listUsername);
8285
break;
8386
}
8487
}
@@ -188,4 +191,41 @@ class SearchEmailWithSortOrderScenario extends BaseTestScenario {
188191

189192
expect(listReceiveAtTime.isSortedByOldestFirst(), isTrue);
190193
}
194+
195+
Future<void> _expectEmailListSortedCorrectBySizeAscending({
196+
required List<String> listUsername,
197+
}) async {
198+
final listEmailTile = $.tester
199+
.widgetList<EmailTileBuilder>(find.byType(EmailTileBuilder));
200+
201+
List<UnsignedInt> sizeList = listEmailTile
202+
.mapIndexed((index, emailTile) => listEmailTile.elementAt(index).presentationEmail.size)
203+
.whereNotNull()
204+
.toList();
205+
206+
expect(_isSortedAscending(sizeList), isTrue);
207+
}
208+
209+
Future<void> _expectEmailListSortedCorrectBySizeDescending({
210+
required List<String> listUsername,
211+
}) async {
212+
final listEmailTile = $.tester
213+
.widgetList<EmailTileBuilder>(find.byType(EmailTileBuilder));
214+
215+
List<UnsignedInt> sizeList = listEmailTile
216+
.mapIndexed((index, emailTile) => listEmailTile.elementAt(index).presentationEmail.size)
217+
.whereNotNull()
218+
.toList();
219+
220+
expect(_isSortedAscending(sizeList), isFalse);
221+
}
222+
223+
bool _isSortedAscending(List<UnsignedInt> list) {
224+
for (int i = 0; i < list.length - 1; i++) {
225+
if (list[i].value > list[i + 1].value) {
226+
return false;
227+
}
228+
}
229+
return true;
230+
}
191231
}

0 commit comments

Comments
 (0)