Ensure that the persisted test database has had migrations applied.

This commit is contained in:
Kris Nuttycombe 2022-10-20 14:22:24 -06:00
parent 1273d303ec
commit a483537cb1
3 changed files with 16 additions and 12 deletions

View File

@ -16,8 +16,8 @@ class NotesRepositoryTests: XCTestCase {
override func setUp() { override func setUp() {
super.setUp() super.setUp()
sentNotesRepository = TestDbBuilder.sentNotesRepository() sentNotesRepository = try! TestDbBuilder.sentNotesRepository()
receivedNotesRepository = TestDbBuilder.receivedNotesRepository() receivedNotesRepository = try! TestDbBuilder.receivedNotesRepository()
} }
override func tearDown() { override func tearDown() {

View File

@ -15,7 +15,7 @@ class TransactionRepositoryTests: XCTestCase {
override func setUp() { override func setUp() {
super.setUp() super.setUp()
transactionRepository = TestDbBuilder.transactionRepository() transactionRepository = try! TestDbBuilder.transactionRepository()
} }
override func tearDown() { override func tearDown() {

View File

@ -73,26 +73,30 @@ class TestDbBuilder {
Bundle.module.url(forResource: "ZcashSdk_Data", withExtension: "db") Bundle.module.url(forResource: "ZcashSdk_Data", withExtension: "db")
} }
static func prepopulatedDataDbProvider() -> ConnectionProvider? { static func prepopulatedDataDbProvider() throws -> ConnectionProvider? {
guard let url = prePopulatedMainnetDataDbURL() else { return nil } guard let url = prePopulatedMainnetDataDbURL() else { return nil }
let provider = SimpleConnectionProvider(path: url.absoluteString, readonly: true) let provider = SimpleConnectionProvider(path: url.absoluteString, readonly: true)
let initResult = try ZcashRustBackend.initDataDb(dbData: url, seed: nil, networkType: NetworkType.testnet)
return provider switch (initResult) {
case .success: return provider
case .seedRequired:
throw StorageError.migrationFailedWithMessage(message: "Seed value required to initialize the wallet database")
}
} }
static func transactionRepository() -> TransactionRepository? { static func transactionRepository() throws -> TransactionRepository? {
guard let provider = prepopulatedDataDbProvider() else { return nil } guard let provider = try prepopulatedDataDbProvider() else { return nil }
return TransactionSQLDAO(dbProvider: provider) return TransactionSQLDAO(dbProvider: provider)
} }
static func sentNotesRepository() -> SentNotesRepository? { static func sentNotesRepository() throws -> SentNotesRepository? {
guard let provider = prepopulatedDataDbProvider() else { return nil } guard let provider = try prepopulatedDataDbProvider() else { return nil }
return SentNotesSQLDAO(dbProvider: provider) return SentNotesSQLDAO(dbProvider: provider)
} }
static func receivedNotesRepository() -> ReceivedNoteRepository? { static func receivedNotesRepository() throws -> ReceivedNoteRepository? {
guard let provider = prepopulatedDataDbProvider() else { return nil } guard let provider = try prepopulatedDataDbProvider() else { return nil }
return ReceivedNotesSQLDAO(dbProvider: provider) return ReceivedNotesSQLDAO(dbProvider: provider)
} }