diff --git a/crates/starknet_os_flow_tests/src/tests.rs b/crates/starknet_os_flow_tests/src/tests.rs index 54c6c7611cb..e65c3c5251f 100644 --- a/crates/starknet_os_flow_tests/src/tests.rs +++ b/crates/starknet_os_flow_tests/src/tests.rs @@ -1947,6 +1947,34 @@ async fn test_deprecated_send_to_l1() { test_output.perform_default_validations(); } +#[rstest] +#[tokio::test] +async fn test_replace_class() { + let empty_contract = FeatureContract::Empty(CairoVersion::Cairo1(RunnableCairo1::Casm)); + let ( + mut test_manager, + [test_contract_address_cairo0, test_contract_address_cairo1, _empty_contract_address], + ) = TestManager::::new_with_default_initial_state([ + (FeatureContract::TestContract(CairoVersion::Cairo0), calldata![Felt::ZERO, Felt::ZERO]), + ( + FeatureContract::TestContract(CairoVersion::Cairo1(RunnableCairo1::Casm)), + calldata![Felt::ZERO, Felt::ZERO], + ), + (empty_contract, calldata![]), + ]) + .await; + let empty_class_hash = get_class_hash_of_feature_contract(empty_contract); + + for address in [test_contract_address_cairo1, test_contract_address_cairo0] { + let calldata = create_calldata(address, "test_replace_class", &[empty_class_hash.0]); + test_manager.add_funded_account_invoke(invoke_tx_args! { calldata }); + } + + let test_output = + test_manager.execute_test_with_default_block_contexts(&TestParameters::default()).await; + test_output.perform_default_validations(); +} + #[rstest] #[tokio::test] async fn test_deploy_syscall() {