From 693c277330b23578b93ef6552d90d90bfcd418a0 Mon Sep 17 00:00:00 2001 From: Branislav Kontur <bkontur@gmail.com> Date: Mon, 17 Feb 2025 11:37:43 +0100 Subject: [PATCH] Add `force_set_current_code` test --- .../runtime/parachains/src/paras/tests.rs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/polkadot/runtime/parachains/src/paras/tests.rs b/polkadot/runtime/parachains/src/paras/tests.rs index 2581dedda26..7d823b12cb6 100644 --- a/polkadot/runtime/parachains/src/paras/tests.rs +++ b/polkadot/runtime/parachains/src/paras/tests.rs @@ -2111,5 +2111,30 @@ fn authorize_and_apply_set_current_code_works() { check_code_is_stored(&code_3); }) } + +#[test] +fn force_set_current_code_works() { + new_test_ext(MockGenesisConfig::default()).execute_with(|| { + let para_a = ParaId::from(111); + let code_1 = ValidationCode(vec![1]); + let code_1_hash = code_1.hash(); + let root = RuntimeOrigin::root(); + let non_root = RuntimeOrigin::signed(1); + + // check before + assert!(CurrentCodeHash::<Test>::get(para_a).is_none()); + check_code_is_not_stored(&code_1); + + // non-root user cannot execute + assert_err!( + Paras::force_set_current_code(non_root, para_a, code_1.clone()), + DispatchError::BadOrigin, + ); + // root can execute + assert_ok!(Paras::force_set_current_code(root, para_a, code_1.clone())); + + // check after + assert_eq!(CurrentCodeHash::<Test>::get(para_a), Some(code_1_hash)); + check_code_is_stored(&code_1); }) } -- GitLab