TF-3219 display limits of email recovery in a yellow banner and filter out invalid suggestions
This commit is contained in:
committed by
Dat H. Pham
parent
2fcb5f03d0
commit
68e9fc2f16
@@ -0,0 +1,106 @@
|
||||
|
||||
import 'package:email_recovery/email_recovery/capability_deleted_messages_vault.dart';
|
||||
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/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/email_recovery/presentation/model/session_extension.dart';
|
||||
|
||||
void main() {
|
||||
|
||||
group('session extension test:', () {
|
||||
test(
|
||||
'getRestorationHorizonAsDuration() should return the horizon as a duration when 15 days',
|
||||
() {
|
||||
// arrange
|
||||
final session = Session({}, {AccountId(Id("1")): Account(AccountName("name"), true, false,
|
||||
{capabilityDeletedMessagesVault: DefaultCapability({"restorationHorizon": "15 days"})})},
|
||||
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
|
||||
|
||||
// act
|
||||
final horizon = session.getRestorationHorizonAsDuration();
|
||||
|
||||
// assert
|
||||
expect(horizon, const Duration(days: 15));
|
||||
});
|
||||
|
||||
test(
|
||||
'getRestorationHorizonAsDuration() should return the horizon as a duration when 1 hour',
|
||||
() {
|
||||
// arrange
|
||||
final session = Session({}, {AccountId(Id("1")): Account(AccountName("name"), true, false,
|
||||
{capabilityDeletedMessagesVault: DefaultCapability({"restorationHorizon": "1 hour"})})},
|
||||
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
|
||||
|
||||
// act
|
||||
final horizon = session.getRestorationHorizonAsDuration();
|
||||
|
||||
// assert
|
||||
expect(horizon, const Duration(hours: 1));
|
||||
});
|
||||
|
||||
test(
|
||||
'getRestorationHorizonAsDuration() should return the horizon as a duration when 45 minutes',
|
||||
() {
|
||||
// arrange
|
||||
final session = Session({}, {AccountId(Id("1")): Account(AccountName("name"), true, false,
|
||||
{capabilityDeletedMessagesVault: DefaultCapability({"restorationHorizon": "45 minutes"})})},
|
||||
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
|
||||
|
||||
// act
|
||||
final horizon = session.getRestorationHorizonAsDuration();
|
||||
|
||||
// assert
|
||||
expect(horizon, const Duration(minutes: 45));
|
||||
});
|
||||
|
||||
test(
|
||||
'getRestorationHorizonAsDuration() should return default horizon as a duration when invalid horizon',
|
||||
() {
|
||||
// arrange
|
||||
final session = Session({}, {AccountId(Id("1")): Account(AccountName("name"), true, false,
|
||||
{capabilityDeletedMessagesVault: DefaultCapability({"restorationHorizon": "invalid"})})},
|
||||
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
|
||||
|
||||
// act
|
||||
final horizon = session.getRestorationHorizonAsDuration();
|
||||
|
||||
// assert
|
||||
expect(horizon, const Duration(days: 15));
|
||||
});
|
||||
|
||||
test(
|
||||
'getRestorationHorizonAsString should return the horizon as a String',
|
||||
() {
|
||||
// arrange
|
||||
final session = Session({}, {AccountId(Id("1")): Account(AccountName("name"), true, false,
|
||||
{capabilityDeletedMessagesVault: DefaultCapability({"restorationHorizon": "15 days"})})},
|
||||
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
|
||||
|
||||
// act
|
||||
final horizon = session.getRestorationHorizonAsString();
|
||||
|
||||
// assert
|
||||
expect(horizon, "15 days");
|
||||
});
|
||||
|
||||
test(
|
||||
'getRestorationHorizonAsString should return the default horizon as a String when invalid session attribute',
|
||||
() {
|
||||
// arrange
|
||||
final session = Session({}, {AccountId(Id("1")): Account(AccountName("name"), true, false,
|
||||
{capabilityDeletedMessagesVault: DefaultCapability({"invalid": "15 days"})})},
|
||||
{}, UserName(''), Uri(), Uri(), Uri(), Uri(), State(''));
|
||||
|
||||
// act
|
||||
final horizon = session.getRestorationHorizonAsString();
|
||||
|
||||
// assert
|
||||
expect(horizon, "15 days");
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user