Set the db sync height

Previously we weren't setting the db sync height in populate_test_db
macro even when current height is provided.. This creates a bug that
get_funded_wallet will return 0 balance.

This PR fixes the populate_test_db macro and updates tests which were
previously dependent on the unsynced wallet behavior.
This commit is contained in:
rajarshimaitra
2022-08-25 17:50:27 +05:30
parent 0a3734ed2b
commit 08668ac462
2 changed files with 76 additions and 5 deletions

View File

@@ -1926,6 +1926,12 @@ pub(crate) mod test {
// OP_PUSH.
const P2WPKH_FAKE_WITNESS_SIZE: usize = 106;
#[test]
fn test_get_funded_wallet_balance() {
let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
assert_eq!(wallet.get_balance().unwrap().confirmed, 50000);
}
#[test]
fn test_cache_addresses_fixed() {
let db = MemoryDatabase::new();
@@ -2173,7 +2179,22 @@ pub(crate) mod test {
#[test]
fn test_create_tx_default_locktime() {
let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
let descriptors = testutils!(@descriptors (get_test_wpkh()));
let wallet = Wallet::new(
&descriptors.0,
None,
Network::Regtest,
AnyDatabase::Memory(MemoryDatabase::new()),
)
.unwrap();
let tx_meta = testutils! {
@tx ( (@external descriptors, 0) => 50_000 )
};
// Add the transaction to our db, but do not sync the db.
crate::populate_test_db!(wallet.database.borrow_mut(), tx_meta, None);
let addr = wallet.get_address(New).unwrap();
let mut builder = wallet.build_tx();
builder.add_recipient(addr.script_pubkey(), 25_000);
@@ -2364,7 +2385,23 @@ pub(crate) mod test {
#[test]
fn test_create_tx_default_sequence() {
let (wallet, _, _) = get_funded_wallet(get_test_wpkh());
let descriptors = testutils!(@descriptors (get_test_wpkh()));
let wallet = Wallet::new(
&descriptors.0,
None,
Network::Regtest,
AnyDatabase::Memory(MemoryDatabase::new()),
)
.unwrap();
let tx_meta = testutils! {
@tx ( (@external descriptors, 0) => 50_000 )
};
// Add the transaction to our db, but do not sync the db. Unsynced db
// should trigger the default sequence value for a new transaction as 0xFFFFFFFF
crate::populate_test_db!(wallet.database.borrow_mut(), tx_meta, None);
let addr = wallet.get_address(New).unwrap();
let mut builder = wallet.build_tx();
builder.add_recipient(addr.script_pubkey(), 25_000);
@@ -2862,7 +2899,22 @@ pub(crate) mod test {
#[test]
fn test_create_tx_policy_path_no_csv() {
let (wallet, _, _) = get_funded_wallet(get_test_a_or_b_plus_csv());
let descriptors = testutils!(@descriptors (get_test_wpkh()));
let wallet = Wallet::new(
&descriptors.0,
None,
Network::Regtest,
AnyDatabase::Memory(MemoryDatabase::new()),
)
.unwrap();
let tx_meta = testutils! {
@tx ( (@external descriptors, 0) => 50_000 )
};
// Add the transaction to our db, but do not sync the db. Unsynced db
// should trigger the default sequence value for a new transaction as 0xFFFFFFFF
crate::populate_test_db!(wallet.database.borrow_mut(), tx_meta, None);
let external_policy = wallet.policies(KeychainKind::External).unwrap().unwrap();
let root_id = external_policy.id;