TF-4171 Display tag in mailbox list

This commit is contained in:
dab246
2025-11-25 14:02:50 +07:00
committed by Dat H. Pham
parent f4302e06e8
commit 31ed2feae4
19 changed files with 1865 additions and 38 deletions
@@ -0,0 +1,99 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:labels/model/label.dart';
import 'package:model/email/presentation_email.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/presentation_email_extension.dart';
void main() {
group('getLabelList', () {
test('returns empty when keywords is null', () {
final email = PresentationEmail(keywords: null);
final labels = [Label(keyword: KeyWordIdentifier.emailFlagged.value)];
final result = email.getLabelList(labels);
expect(result, isEmpty);
});
test('returns empty when keywords is empty', () {
final email = PresentationEmail(keywords: {});
final labels = [Label(keyword: KeyWordIdentifier.emailFlagged.value)];
final result = email.getLabelList(labels);
expect(result, isEmpty);
});
test('returns empty when labels is empty', () {
final email = PresentationEmail(keywords: {
KeyWordIdentifier.emailFlagged: true,
});
final result = email.getLabelList([]);
expect(result, isEmpty);
});
test('returns empty when no enabled keywords', () {
final email = PresentationEmail(keywords: {
KeyWordIdentifier.emailFlagged: false,
KeyWordIdentifier.emailDraft: false,
});
final labels = [
Label(keyword: KeyWordIdentifier.emailFlagged.value),
Label(keyword: KeyWordIdentifier.emailDraft.value),
];
final result = email.getLabelList(labels);
expect(result, isEmpty);
});
test('returns only labels with enabled keywords', () {
final email = PresentationEmail(keywords: {
KeyWordIdentifier.emailFlagged: true,
KeyWordIdentifier.emailSeen: false,
KeyWordIdentifier.emailDraft: true,
});
final labels = [
Label(keyword: KeyWordIdentifier.emailFlagged.value),
Label(keyword: KeyWordIdentifier.emailSeen.value),
Label(keyword: KeyWordIdentifier.emailDraft.value),
];
final result = email.getLabelList(labels);
expect(result.length, 2);
expect(
result.map((l) => l.keyword),
contains(KeyWordIdentifier.emailFlagged.value),
);
expect(
result.map((l) => l.keyword),
contains(KeyWordIdentifier.emailDraft.value),
);
expect(
result.map((l) => l.keyword),
isNot(contains(KeyWordIdentifier.emailSeen.value)),
);
});
test('ignores labels where keyword is null', () {
final email = PresentationEmail(keywords: {
KeyWordIdentifier.emailFlagged: true,
});
final labels = [
Label(),
Label(keyword: KeyWordIdentifier.emailFlagged.value),
];
final result = email.getLabelList(labels);
expect(result.length, 1);
expect(result.first.keyword, KeyWordIdentifier.emailFlagged.value);
});
});
}