From 3ba16f3be9529aff9cfafa6325e44d6e2bb24da5 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Mon, 25 Sep 2023 19:51:31 +0300 Subject: [PATCH] Add test --- .../pricing/test_swap_pricing_utils.cairo | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/tests/pricing/test_swap_pricing_utils.cairo b/src/tests/pricing/test_swap_pricing_utils.cairo index 0df6771a..6d39bc63 100644 --- a/src/tests/pricing/test_swap_pricing_utils.cairo +++ b/src/tests/pricing/test_swap_pricing_utils.cairo @@ -1,7 +1,8 @@ use satoru::data::data_store::IDataStoreDispatcherTrait; use satoru::data::keys; use satoru::pricing::swap_pricing_utils::{ - GetPriceImpactUsdParams, get_price_impact_usd_, get_price_impact_usd, get_next_pool_amount_usd + GetPriceImpactUsdParams, get_price_impact_usd_, get_price_impact_usd, get_next_pool_amount_usd, + get_swap_fees }; use satoru::market::market::Market; use satoru::utils::calc; @@ -91,3 +92,41 @@ fn given_normal_conditions_when_get_next_pool_amount_usd_then_works() { // ********************************************************************************************* teardown(data_store.contract_address); } + +#[test] +fn given_normal_conditions_when_get_swap_fees_then_works() { + // ********************************************************************************************* + // * SETUP * + // ********************************************************************************************* + let (_, _, data_store) = setup(); + + let market_token = 'market_token'.try_into().unwrap(); + let ui_fee_receiver = 'ui_fee_receiver'.try_into().unwrap(); + let for_positive_impact = true; + + data_store.set_u128(keys::swap_fee_factor_key(market_token, for_positive_impact), 5); + data_store.set_u128(keys::swap_fee_receiver_factor(), 10); + data_store.set_u128(keys::max_ui_fee_factor(), 9); + data_store.set_u128(keys::ui_fee_factor_key(ui_fee_receiver), 9); + + + // ********************************************************************************************* + // * TEST LOGIC * + // ********************************************************************************************* + + let amount = 1000; + let fees = get_swap_fees( + data_store, market_token, amount, for_positive_impact, ui_fee_receiver + ); + + assert(fees.fee_receiver_amount == 0, 'invalid'); + assert(fees.fee_amount_for_pool == 0, 'invalid'); + assert(fees.amount_after_fees == 0x03e8, 'invalid'); + assert(fees.ui_fee_receiver_factor == 9, 'invalid'); + assert(fees.ui_fee_amount == 0, 'invalid'); + + // ********************************************************************************************* + // * TEARDOWN * + // ********************************************************************************************* + teardown(data_store.contract_address); +}