mirror of
https://github.com/aljazceru/cdk.git
synced 2026-02-06 21:56:13 +01:00
fix: resolve flakey ci tests
Before minting the quote wait till the status of the quote is paid
This commit is contained in:
@@ -5,7 +5,9 @@ use bip39::Mnemonic;
|
||||
use cdk::{
|
||||
amount::SplitTarget,
|
||||
cdk_database::WalletMemoryDatabase,
|
||||
nuts::{CurrencyUnit, MeltBolt11Request, MeltQuoteState, PreMintSecrets, State},
|
||||
nuts::{
|
||||
CurrencyUnit, MeltBolt11Request, MeltQuoteState, MintQuoteState, PreMintSecrets, State,
|
||||
},
|
||||
wallet::{
|
||||
client::{HttpClient, HttpClientMethods},
|
||||
Wallet,
|
||||
@@ -30,7 +32,7 @@ async fn test_fake_tokens_pending() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -70,7 +72,7 @@ async fn test_fake_melt_payment_fail() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -133,7 +135,7 @@ async fn test_fake_melt_payment_fail_and_check() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -178,7 +180,7 @@ async fn test_fake_melt_payment_return_fail_status() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -238,7 +240,7 @@ async fn test_fake_melt_payment_error_unknown() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -299,7 +301,7 @@ async fn test_fake_melt_payment_err_paid() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -337,7 +339,7 @@ async fn test_fake_melt_change_in_quote() -> Result<()> {
|
||||
|
||||
let mint_quote = wallet.mint_quote(100.into(), None).await?;
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
wait_for_mint_to_be_paid(&wallet, &mint_quote.id).await?;
|
||||
|
||||
let _mint_amount = wallet
|
||||
.mint(&mint_quote.id, SplitTarget::default(), None)
|
||||
@@ -377,3 +379,15 @@ async fn test_fake_melt_change_in_quote() -> Result<()> {
|
||||
assert_eq!(melt_change, check);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
// Keep polling the state of the mint quote id until it's paid
|
||||
async fn wait_for_mint_to_be_paid(wallet: &Wallet, mint_quote_id: &str) -> Result<()> {
|
||||
loop {
|
||||
let status = wallet.mint_quote_state(mint_quote_id).await?;
|
||||
if status.state == MintQuoteState::Paid {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
sleep(Duration::from_millis(5)).await;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user