From a4ac0e7edbb35d1610869f6ff97d546b179cf8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Miko=C5=82ajczyk?= Date: Mon, 28 Aug 2023 16:24:01 +0200 Subject: [PATCH] Reset events --- drink/src/chain_api.rs | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drink/src/chain_api.rs b/drink/src/chain_api.rs index cddd4b0..9d52cf2 100644 --- a/drink/src/chain_api.rs +++ b/drink/src/chain_api.rs @@ -67,7 +67,10 @@ pub trait ChainApi { ) -> DispatchResultWithInfo< as Dispatchable>::PostInfo>; /// Return the events of the current block so far. - fn get_current_events(&mut self) -> Vec>; + fn get_current_block_events(&mut self) -> Vec>; + + /// Reset the events of the current block. + fn reset_current_block_events(&mut self); } impl ChainApi for Sandbox { @@ -121,10 +124,15 @@ impl ChainApi for Sandbox { self.externalities.execute_with(|| call.dispatch(origin)) } - fn get_current_events(&mut self) -> Vec> { + fn get_current_block_events(&mut self) -> Vec> { self.externalities .execute_with(|| frame_system::Pallet::::events()) } + + fn reset_current_block_events(&mut self) { + self.externalities + .execute_with(|| frame_system::Pallet::::reset_events()) + } } #[cfg(test)] @@ -180,13 +188,27 @@ mod tests { fn current_events() { let mut sandbox = Sandbox::::new().expect("Failed to create sandbox"); - let events_before = sandbox.get_current_events(); + let events_before = sandbox.get_current_block_events(); assert!(events_before.is_empty()); make_transfer(&mut sandbox, DEFAULT_ACTOR, 1).expect("Failed to make transfer"); - let events_after = sandbox.get_current_events(); + let events_after = sandbox.get_current_block_events(); assert_eq!(events_after.len(), 1); assert!(matches!(events_after[0].event, RuntimeEvent::Balances(_))); } + + #[test] + fn resetting_events() { + let mut sandbox = Sandbox::::new().expect("Failed to create sandbox"); + + make_transfer(&mut sandbox, DEFAULT_ACTOR, 1).expect("Failed to make transfer"); + + assert!(!sandbox.get_current_block_events().is_empty()); + sandbox.reset_current_block_events(); + assert!(sandbox.get_current_block_events().is_empty()); + + make_transfer(&mut sandbox, DEFAULT_ACTOR, 1).expect("Failed to make transfer"); + assert!(!sandbox.get_current_block_events().is_empty()); + } }