test: add offline tests for wallet new_or_load method

This commit is contained in:
thunderbiscuit
2024-06-26 16:02:05 -04:00
parent 33026108a7
commit c66b48467a
4 changed files with 85 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
import XCTest
@testable import BitcoinDevKit
private let descriptor = try! Descriptor(
descriptor: "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/0/*)",
network: Network.signet
)
private let changeDescriptor = try! Descriptor(
descriptor: "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/1/*)",
network: Network.signet
)
final class OfflinePersistenceTests: XCTestCase {
var dbFilePath: URL!
override func setUpWithError() throws {
super.setUp()
let currentDirectoryURL = URL(fileURLWithPath: FileManager.default.currentDirectoryPath)
let dbFileName = "pre_existing_wallet_persistence_test.sqlite"
dbFilePath = currentDirectoryURL.appendingPathComponent(dbFileName)
}
func testPersistence() throws {
let sqliteStore = try! SqliteStore(path: dbFilePath.path)
let initialChangeSet = try! sqliteStore.read()
XCTAssertTrue(initialChangeSet != nil, "ChangeSet should not be nil after loading a valid database")
let wallet = try Wallet.newOrLoad(
descriptor: descriptor,
changeDescriptor: changeDescriptor,
changeSet: initialChangeSet,
network: .signet
)
let nextAddress: AddressInfo = wallet.revealNextAddress(keychain: KeychainKind.external)
print("Address: \(nextAddress)")
XCTAssertTrue(nextAddress.address.description == "tb1qan3lldunh37ma6c0afeywgjyjgnyc8uz975zl2")
XCTAssertTrue(nextAddress.index == 7)
}
}