Skip to content

Commit

Permalink
fix: Add new asserts to set_goal
Browse files Browse the repository at this point in the history
  • Loading branch information
ShantelPeters committed Nov 25, 2024
1 parent b69acfd commit 48b03aa
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
10 changes: 6 additions & 4 deletions contracts/src/fund.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -177,10 +177,12 @@ pub mod Fund {
}
fn set_goal(ref self: ContractState, goal: u256) {
let caller = get_caller_address();
let fund_manager_address = contract_address_const::<
FundManagerConstants::FUND_MANAGER_ADDRESS
>();
assert!(fund_manager_address == caller, "You are not the fund manager");
let valid_address_1 = contract_address_const::<FundManagerConstants::VALID_ADDRESS_1>();
let valid_address_2 = contract_address_const::<FundManagerConstants::VALID_ADDRESS_2>();
assert!(
valid_address_1 == caller || valid_address_2 == caller,
"Only Admins can change the fund state"
);
self.goal.write(goal);
}
fn get_goal(self: @ContractState) -> u256 {
Expand Down
10 changes: 8 additions & 2 deletions contracts/tests/test_fund.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -163,10 +163,16 @@ fn test_set_goal() {
let dispatcher = IFundDispatcher { contract_address };
let goal = dispatcher.get_goal();
assert(goal == GOAL(), 'Invalid goal');
start_cheat_caller_address_global(FUND_MANAGER());

start_cheat_caller_address_global(VALID_ADDRESS_1());
dispatcher.set_goal(123);
let new_goal = dispatcher.get_goal();
assert(new_goal == 123, 'Set goal method not working')

start_cheat_caller_address_global(VALID_ADDRESS_2());
dispatcher.set_goal(140);
let new_goal_2 = dispatcher.get_goal();
assert(new_goal_2 == 140, 'Set goal method not working');
}

#[test]
Expand Down Expand Up @@ -222,7 +228,7 @@ fn test_new_vote_received_event_emitted_successful() {
}

#[test]
#[should_panic(expected: ("You are not the fund manager",))]
#[should_panic(expected: ("Only Admins can change the fund state",))]
fn test_set_goal_unauthorized() {
let contract_address = _setup_();
let dispatcher = IFundDispatcher { contract_address };
Expand Down

0 comments on commit 48b03aa

Please sign in to comment.