Skip to content

Commit

Permalink
[feat] Add asserts to set_name
Browse files Browse the repository at this point in the history
  • Loading branch information
jsanchez556 committed Nov 23, 2024
1 parent fc62dcd commit 3cd73d6
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 9 deletions.
4 changes: 3 additions & 1 deletion contracts/src/fund.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,9 @@ pub mod Fund {
let valid_address_2 = contract_address_const::<
FundManagerConstants::VALID_ADDRESS_2
>();
assert!(valid_address_1 == caller || valid_address_2 == caller, "You are not the admin");
assert!(
self.owner.read() == caller || valid_address_1 == caller || valid_address_2 == caller,
"You must be an owner or admin to perform this action");
self.name.write(name);
}
fn get_name(self: @ContractState) -> ByteArray {
Expand Down
30 changes: 22 additions & 8 deletions contracts/tests/test_fund.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -103,32 +103,46 @@ fn test_constructor() {
}

#[test]
fn test_set_name() {
fn test_set_name_admin() {
let contract_address = _setup_();
let dispatcher = IFundDispatcher { contract_address };
let name = dispatcher.get_name();
assert(name == NAME(), 'Invalid name');

start_cheat_caller_address_global(VALID_ADDRESS_1());
dispatcher.set_name("NEW_NAME_1");
assert(dispatcher.get_name() == "NEW_NAME_1", 'Set name method not working');
dispatcher.set_name("NEW_NAME_ADMIN_1");
assert(dispatcher.get_name() == "NEW_NAME_ADMIN_1", 'Set name method not working');

start_cheat_caller_address_global(VALID_ADDRESS_2());
dispatcher.set_name("NEW_NAME_2");
assert(dispatcher.get_name() == "NEW_NAME_2", 'Set name method not working');
dispatcher.set_name("NEW_NAME_ADMIN_2");
assert(dispatcher.get_name() == "NEW_NAME_ADMIN_2", 'Set name method not working');
}

#[test]
#[should_panic(expected: ("You are not the admin",))]
fn test_set_name_not_admin() {
fn test_set_name_owner() {
let contract_address = _setup_();
let dispatcher = IFundDispatcher { contract_address };
let name = dispatcher.get_name();
assert(name == NAME(), 'Invalid name');

start_cheat_caller_address_global(OWNER());
dispatcher.set_name("NEW_NAME");
let new_name = dispatcher.get_name();
assert(new_name == "NEW_NAME", 'Set name method not working')
assert(new_name == "NEW_NAME", 'Set name method not working');
}

#[test]
#[should_panic(expected: ("You must be an owner or admin to perform this action",))]
fn test_set_name_not_admin_or_owner() {
let contract_address = _setup_();
let dispatcher = IFundDispatcher { contract_address };
let name = dispatcher.get_name();
assert(name == NAME(), 'Invalid name');

start_cheat_caller_address_global(FUND_MANAGER());
dispatcher.set_name("NEW_NAME");
let new_name = dispatcher.get_name();
assert(new_name == "NEW_NAME", 'Set name method not working');
}

#[test]
Expand Down

0 comments on commit 3cd73d6

Please sign in to comment.