From 3aec37b2aab0c83ccd91afa2f5ff1f207b63921e Mon Sep 17 00:00:00 2001 From: bugarela Date: Thu, 23 May 2024 14:51:58 -0300 Subject: [PATCH] Make code generation deterministic so snapshot testing works --- src/test_generation/actions.rs | 93 +++++++-------- src/test_generation/structs.rs | 30 ++--- tests/snapshots/integration_tests__ctf01.snap | 44 ++++---- tests/snapshots/integration_tests__ctf02.snap | 44 ++++---- tests/snapshots/integration_tests__ctf03.snap | 106 +++++++++--------- tests/snapshots/integration_tests__ctf04.snap | 52 ++++----- tests/snapshots/integration_tests__ctf05.snap | 88 +++++++-------- tests/snapshots/integration_tests__ctf06.snap | 58 +++++----- tests/snapshots/integration_tests__ctf07.snap | 44 ++++---- tests/snapshots/integration_tests__ctf08.snap | 60 +++++----- tests/snapshots/integration_tests__ctf09.snap | 22 ++-- tests/snapshots/integration_tests__ctf10.snap | 10 +- 12 files changed, 330 insertions(+), 321 deletions(-) diff --git a/src/test_generation/actions.rs b/src/test_generation/actions.rs index 7a72bff..6d4b07e 100644 --- a/src/test_generation/actions.rs +++ b/src/test_generation/actions.rs @@ -3,56 +3,61 @@ use crate::types::{fallback_constructor, Context}; use itertools::Itertools; pub fn translate_actions(ctx: Context) -> String { - let msgs = ctx.message_type_for_action.iter().map(|(action, ty)| { - if action == "instantiate" { - let msg_struct = ctx - .structs - .get("InstantiateMsg") + let msgs = ctx + .message_type_for_action + .iter() + // Sort items by name so that the generated code is deterministic + .sorted_by(|a, b| a.0.cmp(b.0)) + .map(|(action, ty)| { + if action == "instantiate" { + let msg_struct = ctx + .structs + .get("InstantiateMsg") + .cloned() + .unwrap_or_default(); + let msg_fields = msg_struct + .iter() + .map(|f| { + let body = init_value_for_type(&ctx, f.ty.clone()); + + format!("{}: {}", f.name, body) + }) + .collect_vec(); + let msg = format!("InstantiateMsg {{ {} }}", msg_fields.join(", ")); + return translate_init(msg); + } + if action == "execute" || action == "instantiate" || action == "reply" { + return "".to_string(); + } + let constructor = ctx + .constructors + .get(ty.as_str()) .cloned() - .unwrap_or_default(); - let msg_fields = msg_struct + .unwrap_or_else(|| fallback_constructor(ty)); + + let nondet_picks = constructor + .fields .iter() .map(|f| { - let body = init_value_for_type(&ctx, f.ty.clone()); + let body = type_conversion( + format!("nondet_picks.message_{}.clone().unwrap()", f.name), + f.ty.clone(), + ); - format!("{}: {}", f.name, body) + format!(" let message_{} = {};", f.name, body) }) .collect_vec(); - let msg = format!("InstantiateMsg {{ {} }}", msg_fields.join(", ")); - return translate_init(msg); - } - if action == "execute" || action == "instantiate" || action == "reply" { - return "".to_string(); - } - let constructor = ctx - .constructors - .get(ty.as_str()) - .cloned() - .unwrap_or_else(|| fallback_constructor(ty)); - - let nondet_picks = constructor - .fields - .iter() - .map(|f| { - let body = type_conversion( - format!("nondet_picks.message_{}.clone().unwrap()", f.name), - f.ty.clone(), - ); - - format!(" let message_{} = {};", f.name, body) - }) - .collect_vec(); - - let fields = constructor - .fields - .iter() - .map(|f| format!("{}: message_{}", f.name, f.name)) - .collect_vec() - .join(", "); - let msg = format!("{} {{ {} }}", constructor.name.replace('_', "::"), fields); - - translate_action(action, msg, nondet_picks.clone()) - }); + + let fields = constructor + .fields + .iter() + .map(|f| format!("{}: message_{}", f.name, f.name)) + .collect_vec() + .join(", "); + let msg = format!("{} {{ {} }}", constructor.name.replace('_', "::"), fields); + + translate_action(action, msg, nondet_picks.clone()) + }); msgs.clone().join("\n") } diff --git a/src/test_generation/structs.rs b/src/test_generation/structs.rs index 943ef76..243f88e 100644 --- a/src/test_generation/structs.rs +++ b/src/test_generation/structs.rs @@ -10,19 +10,23 @@ pub mod state_structs { use itf::de::{self, As}; " .to_string(); - for (name, fields) in ctx.structs { - structs.push_str( - format_struct( - name, - fields - .iter() - .map(|f| (f.name.clone(), f.ty.clone())) - .collect_vec(), - false, - ) - .as_str(), - ); - } + ctx.structs + .iter() + // Sort items by name so that the generated code is deterministic + .sorted_by(|a, b| a.0.cmp(b.0)) + .for_each(|(name, fields)| { + structs.push_str( + format_struct( + name.to_string(), + fields + .iter() + .map(|f| (f.name.clone(), f.ty.clone())) + .collect_vec(), + false, + ) + .as_str(), + ); + }); structs.push_str( format_struct( "ContractState".to_string(), diff --git a/tests/snapshots/integration_tests__ctf01.snap b/tests/snapshots/integration_tests__ctf01.snap index d1c3535..995f47d 100644 --- a/tests/snapshots/integration_tests__ctf01.snap +++ b/tests/snapshots/integration_tests__ctf01.snap @@ -340,28 +340,6 @@ pub mod tests { match action_taken.as_str() { - "withdraw_action" => { - let sender = Addr::unchecked(sender.unwrap()); - let funds = funds_from_trace(amount, denom); - - let message_ids = nondet_picks.message_ids.clone().unwrap().iter().map(|x| x.to_u64().unwrap().into()).collect(); - let msg = ExecuteMsg::Withdraw { ids: message_ids }; - println!("Message: {:?}", msg); - println!("Sender: {:?}", sender); - println!("Funds: {:?}", funds); - - let res = app.execute_contract( - sender, - test_state.contract_addr.clone(), - &msg, - &funds, - ); - - compare_result(s.value.result.clone(), res) - } - - - "deposit_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); @@ -418,6 +396,28 @@ pub mod tests { } + + "withdraw_action" => { + let sender = Addr::unchecked(sender.unwrap()); + let funds = funds_from_trace(amount, denom); + + let message_ids = nondet_picks.message_ids.clone().unwrap().iter().map(|x| x.to_u64().unwrap().into()).collect(); + let msg = ExecuteMsg::Withdraw { ids: message_ids }; + println!("Message: {:?}", msg); + println!("Sender: {:?}", sender); + println!("Funds: {:?}", funds); + + let res = app.execute_contract( + sender, + test_state.contract_addr.clone(), + &msg, + &funds, + ); + + compare_result(s.value.result.clone(), res) + } + + _ => panic!("Invalid action taken"), } compare_state(&test_state, &app, &(s.value.clone())); diff --git a/tests/snapshots/integration_tests__ctf02.snap b/tests/snapshots/integration_tests__ctf02.snap index 3a9a707..b3cbbf5 100644 --- a/tests/snapshots/integration_tests__ctf02.snap +++ b/tests/snapshots/integration_tests__ctf02.snap @@ -365,28 +365,6 @@ pub mod tests { match action_taken.as_str() { - "unstake_action" => { - let sender = Addr::unchecked(sender.unwrap()); - let funds = funds_from_trace(amount, denom); - - let message_unlock_amount = nondet_picks.message_unlock_amount.clone().unwrap().to_u64().unwrap().into(); - let msg = ExecuteMsg::Unstake { unlock_amount: message_unlock_amount }; - println!("Message: {:?}", msg); - println!("Sender: {:?}", sender); - println!("Funds: {:?}", funds); - - let res = app.execute_contract( - sender, - test_state.contract_addr.clone(), - &msg, - &funds, - ); - - compare_result(s.value.result.clone(), res) - } - - - "deposit_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); @@ -466,6 +444,28 @@ pub mod tests { + "unstake_action" => { + let sender = Addr::unchecked(sender.unwrap()); + let funds = funds_from_trace(amount, denom); + + let message_unlock_amount = nondet_picks.message_unlock_amount.clone().unwrap().to_u64().unwrap().into(); + let msg = ExecuteMsg::Unstake { unlock_amount: message_unlock_amount }; + println!("Message: {:?}", msg); + println!("Sender: {:?}", sender); + println!("Funds: {:?}", funds); + + let res = app.execute_contract( + sender, + test_state.contract_addr.clone(), + &msg, + &funds, + ); + + compare_result(s.value.result.clone(), res) + } + + + "withdraw_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); diff --git a/tests/snapshots/integration_tests__ctf03.snap b/tests/snapshots/integration_tests__ctf03.snap index 9b50f7c..09fb9d7 100644 --- a/tests/snapshots/integration_tests__ctf03.snap +++ b/tests/snapshots/integration_tests__ctf03.snap @@ -631,34 +631,47 @@ pub mod tests { - "withdraw_funds_action" => { + "q::init" => { + println!("Initializing contract."); + let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ConstructorForExecuteMsg::WithdrawFunds { }; + let msg = InstantiateMsg { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); - let res = app.execute_contract( + test_state.contract_addr = app.instantiate_contract( + code_id, sender, - test_state.contract_addr.clone(), &msg, &funds, - ); + "test", + None, + ).unwrap(); - compare_result(s.value.result.clone(), res) + for (addr, coins) in s.value.bank.clone().iter() { + for (denom, amount) in coins.iter() { + app = mint_tokens( + app, + addr.clone(), + denom.to_string(), + Uint128::new(amount.to_u128().unwrap()), + ); + } + } } - "settle_loan_action" => { + "set_proxy_addr_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ConstructorForExecuteMsg::SettleLoan { }; + let msg = ConstructorForExecuteMsg::SetProxyAddr { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -675,47 +688,34 @@ pub mod tests { - "q::init" => { - println!("Initializing contract."); - + "settle_loan_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = InstantiateMsg { }; + let msg = ConstructorForExecuteMsg::SettleLoan { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); - test_state.contract_addr = app.instantiate_contract( - code_id, + let res = app.execute_contract( sender, + test_state.contract_addr.clone(), &msg, &funds, - "test", - None, - ).unwrap(); + ); - for (addr, coins) in s.value.bank.clone().iter() { - for (denom, amount) in coins.iter() { - app = mint_tokens( - app, - addr.clone(), - denom.to_string(), - Uint128::new(amount.to_u128().unwrap()), - ); - } - } + compare_result(s.value.result.clone(), res) } - "set_proxy_addr_action" => { + "transfer_owner_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ConstructorForExecuteMsg::SetProxyAddr { }; + let msg = ConstructorForExecuteMsg::TransferOwner { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -732,12 +732,12 @@ pub mod tests { - "transfer_owner_action" => { + "withdraw_funds_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ConstructorForExecuteMsg::TransferOwner { }; + let msg = ConstructorForExecuteMsg::WithdrawFunds { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -1177,28 +1177,6 @@ pub mod tests { match action_taken.as_str() { - "request_flash_loan_action" => { - let sender = Addr::unchecked(sender.unwrap()); - let funds = funds_from_trace(amount, denom); - - - let msg = ConstructorForExecuteMsg::RequestFlashLoan { }; - println!("Message: {:?}", msg); - println!("Sender: {:?}", sender); - println!("Funds: {:?}", funds); - - let res = app.execute_contract( - sender, - test_state.contract_addr.clone(), - &msg, - &funds, - ); - - compare_result(s.value.result.clone(), res) - } - - - "q::init" => { println!("Initializing contract."); @@ -1233,6 +1211,28 @@ pub mod tests { } + + "request_flash_loan_action" => { + let sender = Addr::unchecked(sender.unwrap()); + let funds = funds_from_trace(amount, denom); + + + let msg = ConstructorForExecuteMsg::RequestFlashLoan { }; + println!("Message: {:?}", msg); + println!("Sender: {:?}", sender); + println!("Funds: {:?}", funds); + + let res = app.execute_contract( + sender, + test_state.contract_addr.clone(), + &msg, + &funds, + ); + + compare_result(s.value.result.clone(), res) + } + + _ => panic!("Invalid action taken"), } compare_state(&test_state, &app, &(s.value.clone())); diff --git a/tests/snapshots/integration_tests__ctf04.snap b/tests/snapshots/integration_tests__ctf04.snap index 4697b9e..e73ad7f 100644 --- a/tests/snapshots/integration_tests__ctf04.snap +++ b/tests/snapshots/integration_tests__ctf04.snap @@ -167,13 +167,13 @@ pub mod state_structs { } #[derive(Clone, Debug, Deserialize)] - pub struct InstantiateMsg { - pub offset: BigInt + pub struct Config { + pub total_supply: BigInt } #[derive(Clone, Debug, Deserialize)] - pub struct Config { - pub total_supply: BigInt + pub struct InstantiateMsg { + pub offset: BigInt } #[derive(Clone, Debug, Deserialize)] @@ -341,6 +341,28 @@ pub mod tests { match action_taken.as_str() { + "burn_action" => { + let sender = Addr::unchecked(sender.unwrap()); + let funds = funds_from_trace(amount, denom); + + let message_shares = nondet_picks.message_shares.clone().unwrap().to_u64().unwrap().into(); + let msg = ExecuteMsg::Burn { shares: message_shares }; + println!("Message: {:?}", msg); + println!("Sender: {:?}", sender); + println!("Funds: {:?}", funds); + + let res = app.execute_contract( + sender, + test_state.contract_addr.clone(), + &msg, + &funds, + ); + + compare_result(s.value.result.clone(), res) + } + + + "q::init" => { println!("Initializing contract."); @@ -397,28 +419,6 @@ pub mod tests { } - - "burn_action" => { - let sender = Addr::unchecked(sender.unwrap()); - let funds = funds_from_trace(amount, denom); - - let message_shares = nondet_picks.message_shares.clone().unwrap().to_u64().unwrap().into(); - let msg = ExecuteMsg::Burn { shares: message_shares }; - println!("Message: {:?}", msg); - println!("Sender: {:?}", sender); - println!("Funds: {:?}", funds); - - let res = app.execute_contract( - sender, - test_state.contract_addr.clone(), - &msg, - &funds, - ); - - compare_result(s.value.result.clone(), res) - } - - _ => panic!("Invalid action taken"), } compare_state(&test_state, &app, &(s.value.clone())); diff --git a/tests/snapshots/integration_tests__ctf05.snap b/tests/snapshots/integration_tests__ctf05.snap index da8fa04..ca92e5b 100644 --- a/tests/snapshots/integration_tests__ctf05.snap +++ b/tests/snapshots/integration_tests__ctf05.snap @@ -210,14 +210,14 @@ pub mod state_structs { use std::collections::HashMap; use itf::de::{self, As}; #[derive(Clone, Debug, Deserialize)] - pub struct State { - pub current_owner: String, - pub proposed_owner: Option[Addr] + pub struct InstantiateMsg { + pub owner: String } #[derive(Clone, Debug, Deserialize)] - pub struct InstantiateMsg { - pub owner: String + pub struct State { + pub current_owner: String, + pub proposed_owner: Option[Addr] } #[derive(Clone, Debug, Deserialize)] @@ -394,12 +394,12 @@ pub mod tests { match action_taken.as_str() { - "drop_owner_action" => { + "accept_owner_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::DropOwnershipProposal { }; + let msg = ExecuteMsg::AcceptOwnership { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -416,47 +416,34 @@ pub mod tests { - "q::init" => { - println!("Initializing contract."); - + "deposit_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = InstantiateMsg { owner: "" }; + let msg = ExecuteMsg::Deposit { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); - test_state.contract_addr = app.instantiate_contract( - code_id, + let res = app.execute_contract( sender, + test_state.contract_addr.clone(), &msg, &funds, - "test", - None, - ).unwrap(); + ); - for (addr, coins) in s.value.bank.clone().iter() { - for (denom, amount) in coins.iter() { - app = mint_tokens( - app, - addr.clone(), - denom.to_string(), - Uint128::new(amount.to_u128().unwrap()), - ); - } - } + compare_result(s.value.result.clone(), res) } - "withdraw_action" => { + "drop_owner_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let message_amount = nondet_picks.message_amount.clone().unwrap().to_u64().unwrap().into(); - let msg = ExecuteMsg::Withdraw { amount: message_amount }; + + let msg = ExecuteMsg::DropOwnershipProposal { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -473,34 +460,47 @@ pub mod tests { - "deposit_action" => { + "q::init" => { + println!("Initializing contract."); + let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::Deposit { }; + let msg = InstantiateMsg { owner: "" }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); - let res = app.execute_contract( + test_state.contract_addr = app.instantiate_contract( + code_id, sender, - test_state.contract_addr.clone(), &msg, &funds, - ); + "test", + None, + ).unwrap(); - compare_result(s.value.result.clone(), res) + for (addr, coins) in s.value.bank.clone().iter() { + for (denom, amount) in coins.iter() { + app = mint_tokens( + app, + addr.clone(), + denom.to_string(), + Uint128::new(amount.to_u128().unwrap()), + ); + } + } } - "propose_owner_action" => { + "owner_action_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let message_new_owner = nondet_picks.message_new_owner.clone().unwrap(); - let msg = ExecuteMsg::ProposeNewOwner { new_owner: message_new_owner }; + let message_msg = nondet_picks.message_msg.clone().unwrap(); + let msg = ExecuteMsg::OwnerAction { msg: message_msg }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -517,12 +517,12 @@ pub mod tests { - "accept_owner_action" => { + "propose_owner_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - - let msg = ExecuteMsg::AcceptOwnership { }; + let message_new_owner = nondet_picks.message_new_owner.clone().unwrap(); + let msg = ExecuteMsg::ProposeNewOwner { new_owner: message_new_owner }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -539,12 +539,12 @@ pub mod tests { - "owner_action_action" => { + "withdraw_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let message_msg = nondet_picks.message_msg.clone().unwrap(); - let msg = ExecuteMsg::OwnerAction { msg: message_msg }; + let message_amount = nondet_picks.message_amount.clone().unwrap().to_u64().unwrap().into(); + let msg = ExecuteMsg::Withdraw { amount: message_amount }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); diff --git a/tests/snapshots/integration_tests__ctf06.snap b/tests/snapshots/integration_tests__ctf06.snap index 505d09c..ddf3a31 100644 --- a/tests/snapshots/integration_tests__ctf06.snap +++ b/tests/snapshots/integration_tests__ctf06.snap @@ -372,24 +372,37 @@ pub mod tests { match action_taken.as_str() { - "propose_action" => { + "q::init" => { + println!("Initializing contract."); + let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::Propose { }; + let msg = InstantiateMsg { token: "", owner: "", window: 0 }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); - let res = app.execute_contract( + test_state.contract_addr = app.instantiate_contract( + code_id, sender, - test_state.contract_addr.clone(), &msg, &funds, - ); + "test", + None, + ).unwrap(); - compare_result(s.value.result.clone(), res) + for (addr, coins) in s.value.bank.clone().iter() { + for (denom, amount) in coins.iter() { + app = mint_tokens( + app, + addr.clone(), + denom.to_string(), + Uint128::new(amount.to_u128().unwrap()), + ); + } + } } @@ -416,47 +429,34 @@ pub mod tests { - "q::init" => { - println!("Initializing contract."); - + "propose_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = InstantiateMsg { token: "", owner: "", window: 0 }; + let msg = ExecuteMsg::Propose { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); - test_state.contract_addr = app.instantiate_contract( - code_id, + let res = app.execute_contract( sender, + test_state.contract_addr.clone(), &msg, &funds, - "test", - None, - ).unwrap(); + ); - for (addr, coins) in s.value.bank.clone().iter() { - for (denom, amount) in coins.iter() { - app = mint_tokens( - app, - addr.clone(), - denom.to_string(), - Uint128::new(amount.to_u128().unwrap()), - ); - } - } + compare_result(s.value.result.clone(), res) } - "resolve_proposal_action" => { + "receive_cw20_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::ResolveProposal { }; + let msg = ExecuteMsg::Receive { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -473,12 +473,12 @@ pub mod tests { - "receive_cw20_action" => { + "resolve_proposal_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::Receive { }; + let msg = ExecuteMsg::ResolveProposal { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); diff --git a/tests/snapshots/integration_tests__ctf07.snap b/tests/snapshots/integration_tests__ctf07.snap index 4c4a15c..1e4711a 100644 --- a/tests/snapshots/integration_tests__ctf07.snap +++ b/tests/snapshots/integration_tests__ctf07.snap @@ -373,6 +373,28 @@ pub mod tests { match action_taken.as_str() { + "deposit_action" => { + let sender = Addr::unchecked(sender.unwrap()); + let funds = funds_from_trace(amount, denom); + + + let msg = ExecuteMsg::Deposit { }; + println!("Message: {:?}", msg); + println!("Sender: {:?}", sender); + println!("Funds: {:?}", funds); + + let res = app.execute_contract( + sender, + test_state.contract_addr.clone(), + &msg, + &funds, + ); + + compare_result(s.value.result.clone(), res) + } + + + "q::init" => { println!("Initializing contract."); @@ -430,28 +452,6 @@ pub mod tests { - "deposit_action" => { - let sender = Addr::unchecked(sender.unwrap()); - let funds = funds_from_trace(amount, denom); - - - let msg = ExecuteMsg::Deposit { }; - println!("Message: {:?}", msg); - println!("Sender: {:?}", sender); - println!("Funds: {:?}", funds); - - let res = app.execute_contract( - sender, - test_state.contract_addr.clone(), - &msg, - &funds, - ); - - compare_result(s.value.result.clone(), res) - } - - - "update_config_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); diff --git a/tests/snapshots/integration_tests__ctf08.snap b/tests/snapshots/integration_tests__ctf08.snap index 6f8e8a6..015ab90 100644 --- a/tests/snapshots/integration_tests__ctf08.snap +++ b/tests/snapshots/integration_tests__ctf08.snap @@ -220,13 +220,6 @@ pub mod state_structs { use serde::Deserialize; use std::collections::HashMap; use itf::de::{self, As}; - #[derive(Clone, Debug, Deserialize)] - pub struct Trade { - pub asked_id: String, - pub to_trade_id: String, - pub trader: String - } - #[derive(Clone, Debug, Deserialize)] pub struct Config { pub nft_contract: String @@ -238,11 +231,8 @@ pub mod state_structs { } #[derive(Clone, Debug, Deserialize)] - pub struct Sale { - pub nft_id: String, - pub price: BigInt, - pub owner: String, - pub tradable: bool + pub struct InstantiateMsg { + pub nft_address: String } #[derive(Clone, Debug, Deserialize)] @@ -252,8 +242,18 @@ pub mod state_structs { } #[derive(Clone, Debug, Deserialize)] - pub struct InstantiateMsg { - pub nft_address: String + pub struct Sale { + pub nft_id: String, + pub price: BigInt, + pub owner: String, + pub tradable: bool + } + + #[derive(Clone, Debug, Deserialize)] + pub struct Trade { + pub asked_id: String, + pub to_trade_id: String, + pub trader: String } #[derive(Clone, Debug, Deserialize)] @@ -450,12 +450,13 @@ pub mod tests { match action_taken.as_str() { - "exec_cancel_sale_action" => { + "exec_accept_trade_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); let message_id = nondet_picks.message_id.clone().unwrap(); - let msg = ExecuteMsg::CancelSale { id: message_id }; + let message_trader = nondet_picks.message_trader.clone().unwrap(); + let msg = ExecuteMsg::AcceptTrade { id: message_id, trader: message_trader }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -494,13 +495,12 @@ pub mod tests { - "exec_new_trade_action" => { + "exec_cancel_sale_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let message_target = nondet_picks.message_target.clone().unwrap(); - let message_offered = nondet_picks.message_offered.clone().unwrap(); - let msg = ExecuteMsg::NewTrade { target: message_target, offered: message_offered }; + let message_id = nondet_picks.message_id.clone().unwrap(); + let msg = ExecuteMsg::CancelSale { id: message_id }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -517,13 +517,12 @@ pub mod tests { - "exec_accept_trade_action" => { + "exec_cancel_trade_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); let message_id = nondet_picks.message_id.clone().unwrap(); - let message_trader = nondet_picks.message_trader.clone().unwrap(); - let msg = ExecuteMsg::AcceptTrade { id: message_id, trader: message_trader }; + let msg = ExecuteMsg::CancelTrade { id: message_id }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -540,12 +539,14 @@ pub mod tests { - "exec_cancel_trade_action" => { + "exec_new_sale_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); let message_id = nondet_picks.message_id.clone().unwrap(); - let msg = ExecuteMsg::CancelTrade { id: message_id }; + let message_price = nondet_picks.message_price.clone().unwrap().to_u64().unwrap().into(); + let message_tradable = nondet_picks.message_tradable.clone().unwrap(); + let msg = ExecuteMsg::NewSale { id: message_id, price: message_price, tradable: message_tradable }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -562,14 +563,13 @@ pub mod tests { - "exec_new_sale_action" => { + "exec_new_trade_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let message_id = nondet_picks.message_id.clone().unwrap(); - let message_price = nondet_picks.message_price.clone().unwrap().to_u64().unwrap().into(); - let message_tradable = nondet_picks.message_tradable.clone().unwrap(); - let msg = ExecuteMsg::NewSale { id: message_id, price: message_price, tradable: message_tradable }; + let message_target = nondet_picks.message_target.clone().unwrap(); + let message_offered = nondet_picks.message_offered.clone().unwrap(); + let msg = ExecuteMsg::NewTrade { target: message_target, offered: message_offered }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); diff --git a/tests/snapshots/integration_tests__ctf09.snap b/tests/snapshots/integration_tests__ctf09.snap index 74d2410..4487302 100644 --- a/tests/snapshots/integration_tests__ctf09.snap +++ b/tests/snapshots/integration_tests__ctf09.snap @@ -191,13 +191,6 @@ pub mod state_structs { } - #[derive(Clone, Debug, Deserialize)] - pub struct UserRewardInfo { - pub staked_amount: BigInt, - pub user_index: BigInt, - pub pending_rewards: BigInt - } - #[derive(Clone, Debug, Deserialize)] pub struct State { pub owner: String, @@ -205,6 +198,13 @@ pub mod state_structs { pub global_index: BigInt } + #[derive(Clone, Debug, Deserialize)] + pub struct UserRewardInfo { + pub staked_amount: BigInt, + pub user_index: BigInt, + pub pending_rewards: BigInt + } + #[derive(Clone, Debug, Deserialize)] pub struct ContractState { pub state: State, @@ -370,12 +370,12 @@ pub mod tests { match action_taken.as_str() { - "increase_reward_action" => { + "claim_rewards_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::IncreaseReward { }; + let msg = ExecuteMsg::ClaimRewards { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); @@ -414,12 +414,12 @@ pub mod tests { - "claim_rewards_action" => { + "increase_reward_action" => { let sender = Addr::unchecked(sender.unwrap()); let funds = funds_from_trace(amount, denom); - let msg = ExecuteMsg::ClaimRewards { }; + let msg = ExecuteMsg::IncreaseReward { }; println!("Message: {:?}", msg); println!("Sender: {:?}", sender); println!("Funds: {:?}", funds); diff --git a/tests/snapshots/integration_tests__ctf10.snap b/tests/snapshots/integration_tests__ctf10.snap index eb36b0e..afaf3a6 100644 --- a/tests/snapshots/integration_tests__ctf10.snap +++ b/tests/snapshots/integration_tests__ctf10.snap @@ -154,11 +154,6 @@ pub mod state_structs { pub total_tokens: BigInt } - #[derive(Clone, Debug, Deserialize)] - pub struct Whitelist { - pub users: Vec - } - #[derive(Clone, Debug, Deserialize)] pub struct InstantiateMsg { pub cw721_code_id: BigInt, @@ -166,6 +161,11 @@ pub mod state_structs { pub whitelisted_users: Vec } + #[derive(Clone, Debug, Deserialize)] + pub struct Whitelist { + pub users: Vec + } + #[derive(Clone, Debug, Deserialize)] pub struct ContractState { pub config: Config,