[bugfix] TF-2316 Can not delete folder when its children are hidden (#2519)
This commit is contained in:
Vendored
+403
@@ -107,4 +107,407 @@ class MailboxFixtures {
|
||||
PresentationMailbox.actionRequiredFolder;
|
||||
|
||||
static final currentState = State('2c9f1b12-b35a-43e6-9af2-0106fb53a943');
|
||||
|
||||
static final selectedFolderToDelete = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete')),
|
||||
name: MailboxName('folderToDelete'),
|
||||
parentId: null,
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(true)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_1 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_1')),
|
||||
name: MailboxName('folderToDelete_1'),
|
||||
parentId: MailboxId(Id("folderToDelete")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_2 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_2')),
|
||||
name: MailboxName('folderToDelete_2'),
|
||||
parentId: MailboxId(Id("folderToDelete_1")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_3 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_3')),
|
||||
name: MailboxName('folderToDelete_3'),
|
||||
parentId: MailboxId(Id("folderToDelete")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(true)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_4 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_4')),
|
||||
name: MailboxName('folderToDelete_4'),
|
||||
parentId: MailboxId(Id("folderToDelete_3")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_5 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_5')),
|
||||
name: MailboxName('folderToDelete_5'),
|
||||
parentId: MailboxId(Id("folderToDelete_3")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_6 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_6')),
|
||||
name: MailboxName('folderToDelete_6'),
|
||||
parentId: MailboxId(Id("folderToDelete_5")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_7 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_7')),
|
||||
name: MailboxName('folderToDelete_7'),
|
||||
parentId: MailboxId(Id("folderToDelete_6")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_8 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_8')),
|
||||
name: MailboxName('folderToDelete_8'),
|
||||
parentId: null,
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(true)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_9 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_9')),
|
||||
name: MailboxName('folderToDelete_9'),
|
||||
parentId: MailboxId(Id("folderToDelete_8")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final selectedFolderToDelete_10 = Mailbox(
|
||||
id: MailboxId(Id('folderToDelete_10')),
|
||||
name: MailboxName('folderToDelete_10'),
|
||||
parentId: MailboxId(Id("folderToDelete_8")),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(123)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(12)),
|
||||
totalThreads: TotalThreads(UnsignedInt(123)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(12)),
|
||||
myRights: MailboxRights(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
),
|
||||
isSubscribed: IsSubscribed(false)
|
||||
);
|
||||
|
||||
static final listMailboxIdToDelete = [
|
||||
MailboxId(Id('folderToDelete_7')),
|
||||
MailboxId(Id('folderToDelete_6')),
|
||||
MailboxId(Id('folderToDelete_5')),
|
||||
MailboxId(Id('folderToDelete_4')),
|
||||
MailboxId(Id('folderToDelete_3')),
|
||||
MailboxId(Id('folderToDelete_2')),
|
||||
MailboxId(Id('folderToDelete_1')),
|
||||
MailboxId(Id('folderToDelete')),
|
||||
MailboxId(Id('folderToDelete_10')),
|
||||
MailboxId(Id('folderToDelete_9')),
|
||||
MailboxId(Id('folderToDelete_8'))
|
||||
];
|
||||
|
||||
static final listDescendantMailboxForSelectedFolder = <MailboxId>[
|
||||
MailboxId(Id('folderToDelete_7')),
|
||||
MailboxId(Id('folderToDelete_6')),
|
||||
MailboxId(Id('folderToDelete_5')),
|
||||
MailboxId(Id('folderToDelete_4')),
|
||||
MailboxId(Id('folderToDelete_3')),
|
||||
MailboxId(Id('folderToDelete_2')),
|
||||
MailboxId(Id('folderToDelete_1')),
|
||||
MailboxId(Id('folderToDelete')),
|
||||
];
|
||||
|
||||
static final listDescendantMailboxForSelectedFolder2 = <MailboxId>[
|
||||
MailboxId(Id('folderToDelete_10')),
|
||||
MailboxId(Id('folderToDelete_9')),
|
||||
MailboxId(Id('folderToDelete_8'))
|
||||
];
|
||||
|
||||
static final listMailboxIdsToDelete = <MailboxId>[
|
||||
selectedFolderToDelete.id!,
|
||||
selectedFolderToDelete_8.id!,
|
||||
];
|
||||
|
||||
// Fixtures for "no hidden children" scenario — all mailboxes are subscribed.
|
||||
static final subscribedFolder = Mailbox(
|
||||
id: MailboxId(Id('subscribedFolder')),
|
||||
name: MailboxName('subscribedFolder'),
|
||||
parentId: null,
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(0)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(0)),
|
||||
totalThreads: TotalThreads(UnsignedInt(0)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(0)),
|
||||
myRights: MailboxRights(true, true, true, true, true, true, true, true, true),
|
||||
isSubscribed: IsSubscribed(true),
|
||||
);
|
||||
|
||||
static final subscribedChild = Mailbox(
|
||||
id: MailboxId(Id('subscribedChild')),
|
||||
name: MailboxName('subscribedChild'),
|
||||
parentId: MailboxId(Id('subscribedFolder')),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(0)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(0)),
|
||||
totalThreads: TotalThreads(UnsignedInt(0)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(0)),
|
||||
myRights: MailboxRights(true, true, true, true, true, true, true, true, true),
|
||||
isSubscribed: IsSubscribed(true),
|
||||
);
|
||||
|
||||
static final listMailboxIdsForSubscribedOnly = <MailboxId>[
|
||||
MailboxId(Id('subscribedFolder')),
|
||||
];
|
||||
|
||||
static final expectedDeleteListSubscribedOnly = <MailboxId>[
|
||||
MailboxId(Id('subscribedChild')),
|
||||
MailboxId(Id('subscribedFolder')),
|
||||
];
|
||||
|
||||
// Fixtures for "3-level unsubscribed nesting" scenario.
|
||||
// Tree: parentFolder (subscribed) → level1 (unsubscribed) → level2 (unsubscribed) → level3 (unsubscribed)
|
||||
static final parentFolder = Mailbox(
|
||||
id: MailboxId(Id('parentFolder')),
|
||||
name: MailboxName('parentFolder'),
|
||||
parentId: null,
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(0)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(0)),
|
||||
totalThreads: TotalThreads(UnsignedInt(0)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(0)),
|
||||
myRights: MailboxRights(true, true, true, true, true, true, true, true, true),
|
||||
isSubscribed: IsSubscribed(true),
|
||||
);
|
||||
|
||||
static final hiddenLevel1 = Mailbox(
|
||||
id: MailboxId(Id('hiddenLevel1')),
|
||||
name: MailboxName('hiddenLevel1'),
|
||||
parentId: MailboxId(Id('parentFolder')),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(0)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(0)),
|
||||
totalThreads: TotalThreads(UnsignedInt(0)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(0)),
|
||||
myRights: MailboxRights(true, true, true, true, true, true, true, true, true),
|
||||
isSubscribed: IsSubscribed(false),
|
||||
);
|
||||
|
||||
static final hiddenLevel2 = Mailbox(
|
||||
id: MailboxId(Id('hiddenLevel2')),
|
||||
name: MailboxName('hiddenLevel2'),
|
||||
parentId: MailboxId(Id('hiddenLevel1')),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(0)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(0)),
|
||||
totalThreads: TotalThreads(UnsignedInt(0)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(0)),
|
||||
myRights: MailboxRights(true, true, true, true, true, true, true, true, true),
|
||||
isSubscribed: IsSubscribed(false),
|
||||
);
|
||||
|
||||
static final hiddenLevel3 = Mailbox(
|
||||
id: MailboxId(Id('hiddenLevel3')),
|
||||
name: MailboxName('hiddenLevel3'),
|
||||
parentId: MailboxId(Id('hiddenLevel2')),
|
||||
role: null,
|
||||
sortOrder: SortOrder(sortValue: 1000),
|
||||
totalEmails: TotalEmails(UnsignedInt(0)),
|
||||
unreadEmails: UnreadEmails(UnsignedInt(0)),
|
||||
totalThreads: TotalThreads(UnsignedInt(0)),
|
||||
unreadThreads: UnreadThreads(UnsignedInt(0)),
|
||||
myRights: MailboxRights(true, true, true, true, true, true, true, true, true),
|
||||
isSubscribed: IsSubscribed(false),
|
||||
);
|
||||
|
||||
static final expectedDeleteListThreeLevelNesting = <MailboxId>[
|
||||
MailboxId(Id('hiddenLevel3')),
|
||||
MailboxId(Id('hiddenLevel2')),
|
||||
MailboxId(Id('hiddenLevel1')),
|
||||
MailboxId(Id('parentFolder')),
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user