From a483537cb1af1ff7b5dc4c56d2abd90d2732279a Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Thu, 20 Oct 2022 14:22:24 -0600 Subject: [PATCH] Ensure that the persisted test database has had migrations applied. --- Tests/OfflineTests/NotesRepositoryTests.swift | 4 ++-- .../TransactionRepositoryTests.swift | 2 +- Tests/TestUtils/TestDbBuilder.swift | 22 +++++++++++-------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Tests/OfflineTests/NotesRepositoryTests.swift b/Tests/OfflineTests/NotesRepositoryTests.swift index 98408b9d..c82f7cef 100644 --- a/Tests/OfflineTests/NotesRepositoryTests.swift +++ b/Tests/OfflineTests/NotesRepositoryTests.swift @@ -16,8 +16,8 @@ class NotesRepositoryTests: XCTestCase { override func setUp() { super.setUp() - sentNotesRepository = TestDbBuilder.sentNotesRepository() - receivedNotesRepository = TestDbBuilder.receivedNotesRepository() + sentNotesRepository = try! TestDbBuilder.sentNotesRepository() + receivedNotesRepository = try! TestDbBuilder.receivedNotesRepository() } override func tearDown() { diff --git a/Tests/OfflineTests/TransactionRepositoryTests.swift b/Tests/OfflineTests/TransactionRepositoryTests.swift index 9374d7c8..d2ca12d4 100644 --- a/Tests/OfflineTests/TransactionRepositoryTests.swift +++ b/Tests/OfflineTests/TransactionRepositoryTests.swift @@ -15,7 +15,7 @@ class TransactionRepositoryTests: XCTestCase { override func setUp() { super.setUp() - transactionRepository = TestDbBuilder.transactionRepository() + transactionRepository = try! TestDbBuilder.transactionRepository() } override func tearDown() { diff --git a/Tests/TestUtils/TestDbBuilder.swift b/Tests/TestUtils/TestDbBuilder.swift index 666f5f66..c3028ebb 100644 --- a/Tests/TestUtils/TestDbBuilder.swift +++ b/Tests/TestUtils/TestDbBuilder.swift @@ -73,26 +73,30 @@ class TestDbBuilder { Bundle.module.url(forResource: "ZcashSdk_Data", withExtension: "db") } - static func prepopulatedDataDbProvider() -> ConnectionProvider? { + static func prepopulatedDataDbProvider() throws -> ConnectionProvider? { guard let url = prePopulatedMainnetDataDbURL() else { return nil } let provider = SimpleConnectionProvider(path: url.absoluteString, readonly: true) - - return provider + let initResult = try ZcashRustBackend.initDataDb(dbData: url, seed: nil, networkType: NetworkType.testnet) + switch (initResult) { + case .success: return provider + case .seedRequired: + throw StorageError.migrationFailedWithMessage(message: "Seed value required to initialize the wallet database") + } } - static func transactionRepository() -> TransactionRepository? { - guard let provider = prepopulatedDataDbProvider() else { return nil } + static func transactionRepository() throws -> TransactionRepository? { + guard let provider = try prepopulatedDataDbProvider() else { return nil } return TransactionSQLDAO(dbProvider: provider) } - static func sentNotesRepository() -> SentNotesRepository? { - guard let provider = prepopulatedDataDbProvider() else { return nil } + static func sentNotesRepository() throws -> SentNotesRepository? { + guard let provider = try prepopulatedDataDbProvider() else { return nil } return SentNotesSQLDAO(dbProvider: provider) } - static func receivedNotesRepository() -> ReceivedNoteRepository? { - guard let provider = prepopulatedDataDbProvider() else { return nil } + static func receivedNotesRepository() throws -> ReceivedNoteRepository? { + guard let provider = try prepopulatedDataDbProvider() else { return nil } return ReceivedNotesSQLDAO(dbProvider: provider) }