Skip to content

Commit

Permalink
Merge pull request #101 from Jemiiah/main
Browse files Browse the repository at this point in the history
Add test for events in handles.cairo
  • Loading branch information
Darlington02 authored Jul 31, 2024
2 parents 52f164e + a0f24af commit 522e4c2
Showing 1 changed file with 68 additions and 2 deletions.
70 changes: 68 additions & 2 deletions tests/test_handle.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ use core::option::OptionTrait;
use core::starknet::SyscallResultTrait;
use core::result::ResultTrait;
use core::traits::{TryInto, Into};
use starknet::{ContractAddress};
use starknet::{ContractAddress, get_block_timestamp};
use snforge_std::{
declare, ContractClassTrait, CheatTarget, start_prank, stop_prank, start_warp, stop_warp
declare, ContractClassTrait, CheatTarget, start_prank, stop_prank, start_warp, stop_warp,
spy_events, SpyOn, EventAssertions
};

use karst::interfaces::IHandle::{IHandleDispatcher, IHandleDispatcherTrait};
Expand Down Expand Up @@ -202,3 +203,68 @@ fn test_get_handle_should_panic() {
handles_dispatcher.get_handle(TEST_TOKEN_ID);
stop_prank(CheatTarget::One(handles_contract_address));
}

#[test]
fn test_mint_handle_event() {
let handles_contract_address = __setup__();

let handles_dispatcher = IHandleDispatcher { contract_address: handles_contract_address };

start_prank(CheatTarget::One(handles_contract_address), USER_ONE.try_into().unwrap());
let mut spy = spy_events(SpyOn::One(handles_contract_address));

let test_token_id = handles_dispatcher
.mint_handle(USER_ONE.try_into().unwrap(), TEST_LOCAL_NAME);
let expected_event = Handles::Event::HandleMinted(
Handles::HandleMinted {
local_name: TEST_LOCAL_NAME,
token_id: test_token_id,
to: USER_ONE.try_into().unwrap(),
block_timestamp: get_block_timestamp()
}
);

spy.assert_emitted(@array![(handles_contract_address, expected_event)]);

stop_prank(CheatTarget::One(handles_contract_address));
}


#[test]
fn test_burn_handle_event() {
let handles_contract_address = __setup__();

let handles_dispatcher = IHandleDispatcher { contract_address: handles_contract_address };

start_prank(CheatTarget::One(handles_contract_address), USER_ONE.try_into().unwrap());
let mut spy = spy_events(SpyOn::One(handles_contract_address));

let test_token_id = handles_dispatcher
.mint_handle(USER_ONE.try_into().unwrap(), TEST_LOCAL_NAME);

let mut expected_event = Handles::Event::HandleMinted(
Handles::HandleMinted {
local_name: TEST_LOCAL_NAME,
token_id: test_token_id,
to: USER_ONE.try_into().unwrap(),
block_timestamp: get_block_timestamp()
}
);

spy.assert_emitted(@array![(handles_contract_address, expected_event)]);

handles_dispatcher.burn_handle(test_token_id);
expected_event =
Handles::Event::HandleBurnt(
Handles::HandleBurnt {
local_name: TEST_LOCAL_NAME,
token_id: test_token_id,
owner: USER_ONE.try_into().unwrap(),
block_timestamp: get_block_timestamp()
}
);

spy.assert_emitted(@array![(handles_contract_address, expected_event)]);

stop_prank(CheatTarget::One(handles_contract_address));
}

0 comments on commit 522e4c2

Please sign in to comment.