diff --git a/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart b/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart index 98d2a3ff8..b6c9de626 100644 --- a/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart +++ b/lib/features/mailbox/presentation/extensions/list_mailbox_node_extension.dart @@ -59,6 +59,6 @@ extension ListMailboxNodeExtension on List { } bool _equalsIgnoreCase(String? value, String expected) { - return value != null && value.toLowerCase() == expected; + return value != null && value.toLowerCase() == expected.toLowerCase(); } } diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index 19aa702af..45755d9c7 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -684,6 +684,7 @@ class ThreadController extends BaseController with EmailActionController { { EmailFilterCondition( hasKeyword: KeyWordIdentifier.emailFlagged.value, + before: before, ), EmailFilterCondition( notKeyword: KeyWordIdentifier.emailSeen.value, diff --git a/test/features/mailbox/presentation/extensions/list_mailbox_node_extension_test.dart b/test/features/mailbox/presentation/extensions/list_mailbox_node_extension_test.dart index cf1a88b90..6175a989a 100644 --- a/test/features/mailbox/presentation/extensions/list_mailbox_node_extension_test.dart +++ b/test/features/mailbox/presentation/extensions/list_mailbox_node_extension_test.dart @@ -6,18 +6,18 @@ import 'package:tmail_ui_user/features/mailbox/presentation/extensions/list_mail import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart'; void main() { + MailboxNode buildNode(String id, {String? name, String? role}) { + final mailbox = PresentationMailbox( + MailboxId(Id(id)), + name: name != null ? MailboxName(name) : null, + role: role != null ? Role(role) : null, + ); + return MailboxNode(mailbox); + } + group('ListMailboxNodeExtension::insertAfterInbox', () { late List nodes; - MailboxNode buildNode(String id, {String? name, String? role}) { - final mailbox = PresentationMailbox( - MailboxId(Id(id)), - name: name != null ? MailboxName(name) : null, - role: role != null ? Role(role) : null, - ); - return MailboxNode(mailbox); - } - setUp(() { nodes = [ buildNode('1', name: 'Sent'), @@ -98,15 +98,6 @@ void main() { group('ListMailboxNodeExtension::insertAfterStarredOrInbox', () { late List nodes; - MailboxNode buildNode(String id, {String? name, String? role}) { - final mailbox = PresentationMailbox( - MailboxId(Id(id)), - name: name != null ? MailboxName(name) : null, - role: role != null ? Role(role) : null, - ); - return MailboxNode(mailbox); - } - test('should insert after Starred when Starred exists (by role)', () { nodes = [ buildNode('1', name: 'Inbox', role: 'inbox'), @@ -177,20 +168,20 @@ void main() { final ids = nodes.mailboxIds.map((id) => id.id.value).toList(); expect(ids, ['1', '2']); }); + + test('should insert into empty list as first element', () { + nodes = []; + final newNode = buildNode('1', name: 'Starred', role: 'favorite'); + nodes.insertAfterStarredOrInbox(newNode); + + final ids = nodes.mailboxIds.map((id) => id.id.value).toList(); + expect(ids, ['1']); + }); }); group('ListMailboxNodeExtension::insertAfterByPriority', () { late List nodes; - MailboxNode buildNode(String id, {String? name, String? role}) { - final mailbox = PresentationMailbox( - MailboxId(Id(id)), - name: name != null ? MailboxName(name) : null, - role: role != null ? Role(role) : null, - ); - return MailboxNode(mailbox); - } - bool isInbox(MailboxNode node) => node.item.role?.value == PresentationMailbox.inboxRole || node.item.name?.name.toLowerCase() == 'inbox';