From 66754581acd80679167b985c9de88a77ee049286 Mon Sep 17 00:00:00 2001 From: Serban Iorga Date: Thu, 30 Jun 2022 12:43:01 +0300 Subject: [PATCH] [parachains pallet] add unit test Add unit test in order to check that the submit_parachain_heads() call returns an error when the pallet is halted. Signed-off-by: Serban Iorga --- bridges/modules/parachains/src/lib.rs | 32 ++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/bridges/modules/parachains/src/lib.rs b/bridges/modules/parachains/src/lib.rs index 5601f588d5..df169ab0bb 100644 --- a/bridges/modules/parachains/src/lib.rs +++ b/bridges/modules/parachains/src/lib.rs @@ -450,7 +450,7 @@ mod tests { run_test, test_relay_header, Origin, TestRuntime, PARAS_PALLET_NAME, UNTRACKED_PARACHAIN_ID, }; - use bp_runtime::BasicOperatingMode; + use bp_runtime::{BasicOperatingMode, OwnedBridgeModuleError}; use bp_test_utils::{ authority_list, generate_owned_bridge_module_tests, make_default_justification, }; @@ -562,6 +562,36 @@ mod tests { }) } + #[test] + fn submit_parachain_heads_checks_operating_mode() { + let (state_root, proof) = prepare_parachain_heads_proof(vec![(1, head_data(1, 0))]); + + run_test(|| { + initialize(state_root); + + // `submit_parachain_heads()` should fail when the pallet is halted. + PalletOperatingMode::::put(BasicOperatingMode::Halted); + assert_noop!( + Pallet::::submit_parachain_heads( + Origin::signed(1), + (0, test_relay_header(0, state_root).hash()), + vec![ParaId(1), ParaId(2), ParaId(3)], + proof.clone(), + ), + Error::::BridgeModule(OwnedBridgeModuleError::Halted) + ); + + // `submit_parachain_heads()` should succeed now that the pallet is resumed. + PalletOperatingMode::::put(BasicOperatingMode::Normal); + assert_ok!(Pallet::::submit_parachain_heads( + Origin::signed(1), + (0, test_relay_header(0, state_root).hash()), + vec![ParaId(1)], + proof, + ),); + }); + } + #[test] fn imports_initial_parachain_heads() { let (state_root, proof) =