From af61899ed04c80f4f9f40357607ddf72f2a81bd8 Mon Sep 17 00:00:00 2001 From: Oshioke Salaki Date: Sat, 10 Feb 2024 14:37:32 +0000 Subject: [PATCH] test: that receipt token was transfered to staker after staking --- .../test_bwc_staking_contract.cairo | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/tests/bwc_staking_contract/test_bwc_staking_contract.cairo b/src/tests/bwc_staking_contract/test_bwc_staking_contract.cairo index 73fea1a..60917c9 100644 --- a/src/tests/bwc_staking_contract/test_bwc_staking_contract.cairo +++ b/src/tests/bwc_staking_contract/test_bwc_staking_contract.cairo @@ -196,6 +196,36 @@ fn test_transfer_stake_token(){ } +#[test] +fn test_transfer_receipt_token(){ + let (staking_contract_address, bwc_contract_address, receipt_contract_address, _) = + deploy_contract(); + let receipt_dispatcher = IERC20Dispatcher { contract_address: receipt_contract_address }; + let stake_dispatcher = IStakeDispatcher { contract_address: staking_contract_address }; + let bwc_dispatcher = IERC20Dispatcher { contract_address: bwc_contract_address }; + let prev_stake_contract_receipt_token_balance: u256 = receipt_dispatcher.balance_of(staking_contract_address); + let prev_staker_receipt_token_balance: u256 = receipt_dispatcher.balance_of(Account::user1()); + + + start_prank(CheatTarget::One(bwc_contract_address), Account::admin()); + bwc_dispatcher.transfer(Account::user1(), 35); + stop_prank(CheatTarget::One(bwc_contract_address)); + + start_prank(CheatTarget::One(receipt_contract_address), Account::admin()); + receipt_dispatcher.transfer(staking_contract_address, 20); + stop_prank(CheatTarget::One(receipt_contract_address)); + + start_prank(CheatTarget::One(bwc_contract_address), Account::user1()); + bwc_dispatcher.approve(staking_contract_address, 10); + stop_prank(CheatTarget::One(bwc_contract_address)); + + start_prank(CheatTarget::One(staking_contract_address), Account::user1()); + stake_dispatcher.stake(6); + assert(receipt_dispatcher.balance_of(Account::user1()) == prev_staker_receipt_token_balance + 6 , Errors::INVALID_BALANCE); + stop_prank(CheatTarget::One(staking_contract_address)); +} + +