Invalidate media deletion callbacks during panic

This commit is contained in:
jack
2026-07-26 05:41:28 +02:00
parent 6f97c4510a
commit 6aeef1c00e
8 changed files with 236 additions and 10 deletions
@@ -607,6 +607,24 @@ struct ChatMediaTransferCoordinatorContextTests {
#expect(coordinator.messageIDToTransferId[messageID] == nil)
}
@Test @MainActor
func deleteIncomingStableMediaCompletionAfterPanicIsIgnored() {
let context = MockChatMediaTransferContext()
let coordinator = ChatMediaTransferCoordinator(context: context)
let messageID = "media-11223344556677889900aabbccddeeff"
context.requiredTombstoneIDs = [messageID]
context.deferDeletedMediaPersistence = true
coordinator.deleteMediaMessage(messageID: messageID)
#expect(context.persistedDeletionBatches == [[messageID]])
coordinator.resetForPanic()
context.resolveNextDeletionPersistence(true)
#expect(context.removedMessages.isEmpty)
#expect(context.untombstonedMediaRemovals.isEmpty)
}
@Test @MainActor
func deleteIncomingStableMediaPreservesStateWhenTombstoneFails() {
let context = MockChatMediaTransferContext()