diff --git a/frame/support/src/inherent.rs b/frame/support/src/inherent.rs index 430075d603f2a..3c201dff29c22 100644 --- a/frame/support/src/inherent.rs +++ b/frame/support/src/inherent.rs @@ -218,6 +218,10 @@ mod tests { fn create_inherent(_: &InherentData) -> Option { Some(CallTest2::Something) } + + fn is_inherent_required(_: &InherentData) -> Result, Self::Error> { + Ok(Some(().into())) + } } type Block = testing::Block; @@ -260,14 +264,30 @@ mod tests { fn check_inherents_works() { let block = Block::new( Header::new_from_number(1), - vec![Extrinsic { function: Call::Test(CallTest::Something) }], + vec![ + Extrinsic { function: Call::Test2(CallTest2::Something) }, + Extrinsic { function: Call::Test(CallTest::Something) }, + ], ); assert!(InherentData::new().check_extrinsics(&block).ok()); let block = Block::new( Header::new_from_number(1), - vec![Extrinsic { function: Call::Test(CallTest::SomethingElse) }], + vec![ + Extrinsic { function: Call::Test2(CallTest2::Something) }, + Extrinsic { function: Call::Test(CallTest::SomethingElse) }, + ], + ); + + assert!(InherentData::new().check_extrinsics(&block).fatal_error()); + } + + #[test] + fn required_inherents_enforced() { + let block = Block::new( + Header::new_from_number(1), + vec![Extrinsic { function: Call::Test(CallTest::Something) }], ); assert!(InherentData::new().check_extrinsics(&block).fatal_error());