From da9e5381a38fb4a2f603ebbb1063155cedc69591 Mon Sep 17 00:00:00 2001 From: sen Date: Mon, 25 May 2026 20:42:07 +0530 Subject: [PATCH] test(soroban): add pause example coverage Signed-off-by: sen --- tests/soroban_testcases/mod.rs | 1 + tests/soroban_testcases/pause.rs | 49 ++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 tests/soroban_testcases/pause.rs diff --git a/tests/soroban_testcases/mod.rs b/tests/soroban_testcases/mod.rs index e1df43ec2..dd44d2e28 100644 --- a/tests/soroban_testcases/mod.rs +++ b/tests/soroban_testcases/mod.rs @@ -13,6 +13,7 @@ mod integer_width_warnings; mod liquidity_pool; mod mappings; mod math; +mod pause; mod print; mod storage; mod storage_array; diff --git a/tests/soroban_testcases/pause.rs b/tests/soroban_testcases/pause.rs new file mode 100644 index 000000000..8d2abfe8b --- /dev/null +++ b/tests/soroban_testcases/pause.rs @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: Apache-2.0 + +use crate::build_solidity; +use soroban_sdk::{IntoVal, Val}; + +#[test] +fn pause_contract() { + let src = build_solidity( + r#"contract Pause { + bool private paused; + + function is_paused() public view returns (bool) { + return paused; + } + + function pause() public { + paused = true; + } + + function unpause() public { + paused = false; + } + }"#, + |_| {}, + ); + + let addr = src.contracts.last().unwrap(); + + // Check initial state + let res = src.invoke_contract(addr, "is_paused", vec![]); + let expected: Val = false.into_val(&src.env); + assert!(expected.shallow_eq(&res)); + + // Pause + src.invoke_contract(addr, "pause", vec![]); + + // Check paused state + let res = src.invoke_contract(addr, "is_paused", vec![]); + let expected: Val = true.into_val(&src.env); + assert!(expected.shallow_eq(&res)); + + // Unpause + src.invoke_contract(addr, "unpause", vec![]); + + // Check unpaused state + let res = src.invoke_contract(addr, "is_paused", vec![]); + let expected: Val = false.into_val(&src.env); + assert!(expected.shallow_eq(&res)); +}