Skip to content
Snippets Groups Projects
Commit f52a83a8 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Merge branch 'feature/ignore-unknown-group-messages' into 'main'

Ignore migration failure of unknown group messages

See merge request elixxir/client-ios-db!26
parents adf3c4b9 b9ae4491
Branches
Tags v1.0.6
1 merge request!26Ignore migration failure of unknown group messages
...@@ -59,8 +59,11 @@ extension Migrator { ...@@ -59,8 +59,11 @@ extension Migrator {
let groupMessages = try GroupMessage.order(GroupMessage.Column.timestamp).fetchCursor(db) let groupMessages = try GroupMessage.order(GroupMessage.Column.timestamp).fetchCursor(db)
while let groupMessage = try groupMessages.next() { while let groupMessage = try groupMessages.next() {
do {
try migrateMessage(groupMessage, to: newDb, myContactId: myContactId, meMarshaled: meMarshaled) try migrateMessage(groupMessage, to: newDb, myContactId: myContactId, meMarshaled: meMarshaled)
} }
catch _ as MigrateMessage.GroupNotFound {}
}
} }
} }
} }
......
...@@ -171,4 +171,39 @@ final class MigratorTests: XCTestCase { ...@@ -171,4 +171,39 @@ final class MigratorTests: XCTestCase {
assertSnapshot(matchingMessagesIn: newDbQueue) assertSnapshot(matchingMessagesIn: newDbQueue)
assertSnapshot(matchingFileTransfersIn: newDbQueue) assertSnapshot(matchingFileTransfersIn: newDbQueue)
} }
func testMigrateMessageGroupNotFound() throws {
// Mock up legacy database:
let legacyDb = try LegacyDatabase(writer: DatabaseQueue())
let message = LegacyMessage.group(try legacyDb.writer.write { db in
try XXLegacyDatabaseMigrator.GroupMessage.stub(1).saved(db)
})
// Mock up new database:
var newDb = XXModels.Database.failing
newDb.fetchContacts = .init { _ in [] }
newDb.saveContact = .init { $0 }
// Perform migration:
var didMigrateMessages = [LegacyMessage]()
let migrate = Migrator.live(
migrateContact: .init { _, _ in fatalError() },
migrateGroup: .init { _, _ in fatalError() },
migrateGroupMember: .init { _, _ in fatalError() },
migrateMessage: .init { message, _, _, _ in
didMigrateMessages.append(message)
throw MigrateMessage.GroupNotFound()
}
)
// Database migration should not throw, despite message migration throws `GroupNotFound`:
try migrate(legacyDb, to: newDb, myContactId: Data(), meMarshaled: Data())
XCTAssertNoDifference(didMigrateMessages, [message])
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment