Skip to content

Commit d25a64c

Browse files
committed
forge: update test to support new mock_call cheatcode
1 parent 4445931 commit d25a64c

File tree

3 files changed

+24
-18
lines changed

3 files changed

+24
-18
lines changed

crates/forge/tests/integration/cheat_fork.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ fn mock_call_cairo0_contract() {
155155
let test = test_case!(formatdoc!(
156156
r#"
157157
use starknet::{{contract_address_const}};
158-
use snforge_std::{{start_mock_call, stop_mock_call}};
158+
use snforge_std::{{start_mock_call, stop_mock_call, MockCallData}};
159159
160160
#[starknet::interface]
161161
trait IERC20<TContractState> {{
@@ -173,11 +173,11 @@ fn mock_call_cairo0_contract() {
173173
174174
assert(eth_dispatcher.name() == 'Ether', 'invalid name');
175175
176-
start_mock_call(eth_dispatcher.contract_address, selector!("name"), 'NotEther');
176+
start_mock_call(eth_dispatcher.contract_address, selector!("name"), MockCallData::Any, 'NotEther');
177177
178178
assert(eth_dispatcher.name() == 'NotEther', 'invalid mocked name');
179179
180-
stop_mock_call(eth_dispatcher.contract_address, selector!("name"));
180+
stop_mock_call(eth_dispatcher.contract_address, selector!("name"), MockCallData::Any);
181181
182182
assert(eth_dispatcher.name() == 'Ether', 'invalid name after mock');
183183
}}

crates/forge/tests/integration/mock_call.rs

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ fn mock_call_simple() {
1010
indoc!(
1111
r#"
1212
use result::ResultTrait;
13-
use snforge_std::{ declare, ContractClassTrait, DeclareResultTrait, start_mock_call, stop_mock_call };
13+
use snforge_std::{ declare, ContractClassTrait, DeclareResultTrait, start_mock_call, stop_mock_call, MockCallData };
1414
1515
#[starknet::interface]
1616
trait IMockChecker<TContractState> {
@@ -26,13 +26,19 @@ fn mock_call_simple() {
2626
2727
let dispatcher = IMockCheckerDispatcher { contract_address };
2828
29-
let mock_ret_data = 421;
29+
let specific_mock_ret_data = 421;
30+
let default_mock_ret_data = 404;
31+
let expected_calldata = MockCallData::Values([].span());
32+
start_mock_call(contract_address, selector!("get_thing"), expected_calldata, specific_mock_ret_data);
33+
start_mock_call(contract_address, selector!("get_thing"), MockCallData::Any, default_mock_ret_data);
34+
let thing = dispatcher.get_thing();
35+
assert(thing == specific_mock_ret_data, 'Incorrect thing');
3036
31-
start_mock_call(contract_address, selector!("get_thing"), mock_ret_data);
37+
stop_mock_call(contract_address, selector!("get_thing"), expected_calldata);
3238
let thing = dispatcher.get_thing();
33-
assert(thing == 421, 'Incorrect thing');
39+
assert(thing == default_mock_ret_data, 'Incorrect thing');
3440
35-
stop_mock_call(contract_address, selector!("get_thing"));
41+
stop_mock_call(contract_address, selector!("get_thing"), MockCallData::Any);
3642
let thing = dispatcher.get_thing();
3743
assert(thing == 420, 'Incorrect thing');
3844
}
@@ -45,12 +51,12 @@ fn mock_call_simple() {
4551
let (contract_address, _) = contract.deploy(@calldata).unwrap();
4652
4753
let mock_ret_data = 421;
48-
start_mock_call(contract_address, selector!("get_thing"), mock_ret_data);
54+
start_mock_call(contract_address, selector!("get_thing"), MockCallData::Any, mock_ret_data);
4955
5056
let dispatcher = IMockCheckerDispatcher { contract_address };
5157
let thing = dispatcher.get_thing();
5258
53-
assert(thing == 421, 'Incorrect thing');
59+
assert(thing == 421, 'Incorrect thing all catch');
5460
}
5561
"#
5662
),
@@ -73,7 +79,7 @@ fn mock_call_complex_types() {
7379
use result::ResultTrait;
7480
use array::ArrayTrait;
7581
use serde::Serde;
76-
use snforge_std::{ declare, ContractClassTrait, DeclareResultTrait, start_mock_call };
82+
use snforge_std::{ declare, ContractClassTrait, DeclareResultTrait, start_mock_call, MockCallData };
7783
7884
#[starknet::interface]
7985
trait IMockChecker<TContractState> {
@@ -97,7 +103,7 @@ fn mock_call_complex_types() {
97103
let dispatcher = IMockCheckerDispatcher { contract_address };
98104
99105
let mock_ret_data = StructThing {item_one: 412, item_two: 421};
100-
start_mock_call(contract_address, selector!("get_struct_thing"), mock_ret_data);
106+
start_mock_call(contract_address, selector!("get_struct_thing"), MockCallData::Any, mock_ret_data);
101107
102108
let thing: StructThing = dispatcher.get_struct_thing();
103109
@@ -115,7 +121,7 @@ fn mock_call_complex_types() {
115121
let dispatcher = IMockCheckerDispatcher { contract_address };
116122
117123
let mock_ret_data = array![ StructThing {item_one: 112, item_two: 121}, StructThing {item_one: 412, item_two: 421} ];
118-
start_mock_call(contract_address, selector!("get_arr_thing"), mock_ret_data);
124+
start_mock_call(contract_address, selector!("get_arr_thing"), MockCallData::Any, mock_ret_data);
119125
120126
let things: Array<StructThing> = dispatcher.get_arr_thing();
121127
@@ -146,7 +152,7 @@ fn mock_calls() {
146152
indoc!(
147153
r#"
148154
use result::ResultTrait;
149-
use snforge_std::{ declare, ContractClassTrait, DeclareResultTrait, mock_call, start_mock_call, stop_mock_call };
155+
use snforge_std::{ declare, ContractClassTrait, DeclareResultTrait, mock_call, MockCallData };
150156
151157
#[starknet::interface]
152158
trait IMockChecker<TContractState> {
@@ -164,7 +170,7 @@ fn mock_calls() {
164170
165171
let mock_ret_data = 421;
166172
167-
mock_call(contract_address, selector!("get_thing"), mock_ret_data, 1);
173+
mock_call(contract_address, selector!("get_thing"), MockCallData::Any, mock_ret_data, 1);
168174
169175
let thing = dispatcher.get_thing();
170176
assert_eq!(thing, 421);
@@ -184,7 +190,7 @@ fn mock_calls() {
184190
185191
let mock_ret_data = 421;
186192
187-
mock_call(contract_address, selector!("get_thing"), mock_ret_data, 2);
193+
mock_call(contract_address, selector!("get_thing"), MockCallData::Any, mock_ret_data, 2);
188194
189195
let thing = dispatcher.get_thing();
190196
assert_eq!(thing, 421);

crates/forge/tests/integration/test_state.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ fn inconsistent_syscall_pointers() {
678678
r#"
679679
use starknet::ContractAddress;
680680
use starknet::info::get_block_number;
681-
use snforge_std::start_mock_call;
681+
use snforge_std::{start_mock_call, MockCallData};
682682
683683
#[starknet::interface]
684684
trait IContract<TContractState> {
@@ -689,7 +689,7 @@ fn inconsistent_syscall_pointers() {
689689
fn inconsistent_syscall_pointers() {
690690
// verifies if SyscallHandler.syscal_ptr is incremented correctly when calling a contract
691691
let address = 'address'.try_into().unwrap();
692-
start_mock_call(address, selector!("get_value"), 55);
692+
start_mock_call(address, selector!("get_value"), MockCallData::Any, 55);
693693
let contract = IContractDispatcher { contract_address: address };
694694
contract.get_value(address);
695695
get_block_number();

0 commit comments

Comments
 (0)