Invalidate media deletion callbacks during panic

This commit is contained in:
jack
2026-07-26 00:12:27 +02:00
parent ebb9100788
commit d1058a0e67
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()