diff --git a/tests/adl/test_adl_utils.cairo b/tests/adl/test_adl_utils.cairo index 1206f9b4..84df8008 100644 --- a/tests/adl/test_adl_utils.cairo +++ b/tests/adl/test_adl_utils.cairo @@ -22,6 +22,9 @@ use snforge_std::{ }; use satoru::adl::adl_utils; use satoru::utils::i128::{i128, i128_new}; +use satoru::market::market::{Market}; +use satoru::price::price::{Price, PriceTrait}; +use satoru::oracle::oracle::{IOracleDispatcher, IOracleDispatcherTrait}; #[test] @@ -248,15 +251,40 @@ fn given_normal_conditions_when_update_adl_state_then_works() { let (caller_address, role_store, data_store, event_emitter, oracle) = setup_oracle_and_store(); // TODO // For testing "get_enabled_market", "get_market_prices" and "is_pnl_factor_exceeded_direct" should be implmented - let market = 'market'.try_into().unwrap(); - let is_long = true; - let block_value = 9_u64; - adl_utils::set_latest_adl_block(data_store, market, is_long, block_value); + let is_long = false; + let market_token_address = contract_address_const::<'market_token'>(); + let index_token_address = contract_address_const::<'index_token'>(); + let long_token_address = contract_address_const::<'long_token'>(); + let short_token_address = contract_address_const::<'short_token'>(); + let mut market = Market { + market_token: market_token_address, + index_token: index_token_address, + long_token: long_token_address, + short_token: short_token_address, + }; - let block_numbers = array![10_u64, 9_u64]; - adl_utils::update_adl_state( - data_store, event_emitter, oracle, market, is_long, block_numbers.span() + start_prank(role_store.contract_address, caller_address); + role_store.grant_role(caller_address, role::MARKET_KEEPER); + + let price = Price { + min: 1, + max: 200 + }; + + stop_prank(role_store.contract_address); + data_store.set_market(market_token_address, 0, market); + + oracle.set_primary_price(index_token_address, price); + oracle.set_primary_price(long_token_address, price); + oracle.set_primary_price(short_token_address, price); + + let block_value = 1_u64; + let set_block = adl_utils::set_latest_adl_block(data_store, market_token_address, is_long, block_value); + let block_numbers = array![1_u64, 2_u64]; + let updated = adl_utils::update_adl_state( + data_store, event_emitter, oracle, market_token_address, is_long, block_numbers.span() ); teardown(data_store.contract_address); + // assert(adl_utils::get_latest_adl_block(data_store, market_token_address, is_long) == set_block, "No set block"); }