Skip to content

Commit

Permalink
changed test to a simple test showing mempool monitor works and statu…
Browse files Browse the repository at this point in the history
…s correctly changes from pending to confirmed when bump and synced
  • Loading branch information
Oscar-Pepper committed Jul 9, 2024
1 parent 42bb381 commit dfb7fba
Showing 1 changed file with 28 additions and 17 deletions.
45 changes: 28 additions & 17 deletions libtonode-tests/tests/concrete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,45 +127,56 @@ mod fast {
use zcash_address::unified::Encoding;
use zcash_client_backend::{PoolType, ShieldedProtocol};
use zcash_primitives::transaction::components::amount::NonNegativeAmount;
use zingo_status::confirmation_status::ConfirmationStatus;
use zingo_testutils::lightclient::from_inputs;
use zingolib::wallet::WalletBase;

use super::*;

#[tokio::test]
async fn tx_status_pending_to_confirmed() {
async fn received_tx_status_pending_to_confirmed_with_mempool_monitor() {
let (regtest_manager, _cph, faucet, recipient, _txid) =
scenarios::orchard_funded_recipient(100_000).await;

let recipient = std::sync::Arc::new(recipient);

let txid = from_inputs::quick_send(
&recipient,
vec![(&get_base_address_macro!(faucet, "sapling"), 20_000, None)],
from_inputs::quick_send(
&faucet,
vec![(
&get_base_address_macro!(&recipient, "sapling"),
20_000,
None,
)],
)
.await
.unwrap();

recipient
.wallet
.transaction_context
.transaction_metadata_set
.write()
.await
.transaction_records_by_id
.remove(txid.first());

LightClient::start_mempool_monitor(recipient.clone());
tokio::time::sleep(Duration::from_secs(5)).await;
println!("pre bump and sync");
println!("{}", &recipient.transaction_summaries().await);

let transactions = &recipient.transaction_summaries().await.0;
assert_eq!(
transactions
.iter()
.find(|tx| tx.value() == 20_000)
.unwrap()
.status(),
ConfirmationStatus::Pending(BlockHeight::from_u32(5)) // FIXME: mempool blockheight is at chain hieght instead of chain height + 1
);

increase_height_and_wait_for_client(&regtest_manager, &recipient, 1)
.await
.unwrap();

println!("post bump and sync");
println!("{}", &recipient.transaction_summaries().await);
let transactions = &recipient.transaction_summaries().await.0;
assert_eq!(
transactions
.iter()
.find(|tx| tx.value() == 20_000)
.unwrap()
.status(),
ConfirmationStatus::Confirmed(BlockHeight::from_u32(6))
);
}

#[tokio::test]
Expand Down

0 comments on commit dfb7fba

Please sign in to comment.