Skip to content

Commit

Permalink
update test to cover single denom case
Browse files Browse the repository at this point in the history
  • Loading branch information
iboss-ptk committed Jun 28, 2024
1 parent 00eaad4 commit 887671f
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 5 deletions.
11 changes: 6 additions & 5 deletions contracts/transmuter/src/test/cases/units/add_new_assets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,7 @@ fn test_add_new_assets() {
.with_account("admin", vec![])
.with_account("non_admin", vec![])
.with_instantiate_msg(InstantiateMsg {
pool_asset_configs: vec![
AssetConfig::from_denom_str("denom1"),
AssetConfig::from_denom_str("denom2"),
],
pool_asset_configs: vec![AssetConfig::from_denom_str("denom1")],
admin: None, // override by admin account set above
alloyed_asset_subdenom: "denomx".to_string(),
alloyed_asset_normalization_factor: Uint128::one(),
Expand All @@ -38,7 +35,11 @@ fn test_add_new_assets() {
.build(&app);

// add new asset
let denoms = vec!["denom3".to_string(), "denom4".to_string()];
let denoms = vec![
"denom2".to_string(),
"denom3".to_string(),
"denom4".to_string(),
];

let err = t
.contract
Expand Down
77 changes: 77 additions & 0 deletions contracts/transmuter/src/test/cases/units/swap/swap_share_denom.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,83 @@ fn test_swap_exact_amount_out_with_share_denom() {
);
}

#[test]
fn test_swap_exact_amount_out_with_share_denom_single_asset_pool() {
let app = osmosis_test_tube::OsmosisTestApp::new();
let t = pool_with_single_lp(&app, vec![Coin::new(REMAINING_DENOM0, "denom0")], vec![]);

// get share denom
let share_denom = t
.contract
.query::<GetShareDenomResponse>(&QueryMsg::GetShareDenom {})
.unwrap()
.share_denom;

test_swap_share_denom_success_case(
&t,
SwapMsg::SwapExactAmountOut {
token_in_denom: "denom0".to_string(),
token_in_max_amount: Uint128::from(1_000u128),
token_out: Coin::new(1_000, share_denom.clone()),
},
Coin::new(1_000, "denom0".to_string()),
Coin::new(1_000, share_denom.clone()),
);

test_swap_share_denom_success_case(
&t,
SwapMsg::SwapExactAmountOut {
token_in_denom: share_denom.clone(),
token_in_max_amount: Uint128::from(1_000u128),
token_out: Coin::new(1_000, "denom0".to_string()),
},
Coin::new(1_000, share_denom.clone()),
Coin::new(1_000, "denom0".to_string()),
);
}

#[test]
fn test_swap_exact_amount_in_with_share_denom_and_normalization_factor_single_asset() {
let app = osmosis_test_tube::OsmosisTestApp::new();
let t = pool_with_single_lp(
&app,
vec![Coin::new(REMAINING_DENOM1 * 10u128.pow(8), "denom1")],
vec![AssetConfig {
denom: "denom1".to_string(),
normalization_factor: 10u128.pow(8).into(),
}],
);

// get share denom
let share_denom = t
.contract
.query::<GetShareDenomResponse>(&QueryMsg::GetShareDenom {})
.unwrap()
.share_denom;

test_swap_share_denom_success_case(
&t,
SwapMsg::SwapExactAmountIn {
token_in: Coin::new(1_000 * 10u128.pow(8), "denom1".to_string()),
token_out_denom: share_denom.clone(),
token_out_min_amount: Uint128::one(),
},
Coin::new(1_000 * 10u128.pow(8), "denom1".to_string()),
Coin::new(1_000, share_denom.clone()),
);

test_swap_share_denom_success_case(
&t,
SwapMsg::SwapExactAmountIn {
token_in: Coin::new(1000, share_denom.clone()),
token_out_denom: "denom1".to_string(),
token_out_min_amount: Uint128::one(),
},
Coin::new(1000, share_denom),
Coin::new(1000 * 10u128.pow(8), "denom1".to_string()),
);
}

#[test]
fn test_swap_exact_amount_out_with_share_denom_where_token_in_max_is_exceeding_expectation() {
let app = osmosis_test_tube::OsmosisTestApp::new();
Expand Down

0 comments on commit 887671f

Please sign in to comment.