TF-3189 subaddressing features only shown if supported by the server

This commit is contained in:
Florent Azavant
2024-11-29 12:30:22 +01:00
committed by Dat H. Pham
parent f1ec1d7324
commit 019dbe6e03
4 changed files with 130 additions and 18 deletions
@@ -0,0 +1,69 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/account/account.dart';
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
import 'package:jmap_dart_client/jmap/core/capability/default_capability.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart';
void main() {
group('MailboxWidgetMixin::isSubaddressingSupported::test', () {
test(
'should return true '
'when the server advertizes true',
() {
// arrange
final session = Session(
{CapabilityIdentifier.jmapTeamMailboxes: DefaultCapability({"subaddressingSupported": true})},
{AccountId(Id("1")): Account(AccountName("name"), true, false, {CapabilityIdentifier.jmapTeamMailboxes: DefaultCapability({"subaddressingSupported": true})})},
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
// act
final subaddressingSupported = MailboxWidgetMixin.isSubaddressingSupported(session, AccountId(Id("1")));
// assert
expect(subaddressingSupported, true);
});
test(
'should return false '
'when the server advertizes false',
() {
// arrange
final session = Session(
{CapabilityIdentifier.jmapTeamMailboxes: DefaultCapability({"subaddressingSupported": false})},
{AccountId(Id("1")): Account(AccountName("name"), true, false, {CapabilityIdentifier.jmapTeamMailboxes: DefaultCapability({"subaddressingSupported": false})})},
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
// act
final subaddressingSupported = MailboxWidgetMixin.isSubaddressingSupported(session, AccountId(Id("1")));
// assert
expect(subaddressingSupported, false);
});
test(
'should return false '
'when the server advertizes nothing',
() {
// arrange
final session = Session(
{CapabilityIdentifier.jmapTeamMailboxes: DefaultCapability({})},
{AccountId(Id("1")): Account(AccountName("name"), true, false, {CapabilityIdentifier.jmapTeamMailboxes: DefaultCapability({})})},
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
// act
final subaddressingSupported = MailboxWidgetMixin.isSubaddressingSupported(session, AccountId(Id("1")));
// assert
expect(subaddressingSupported, false);
});
});
}