From 0f55fd7f9063a8c91b717fa78d64b8c0e2fa48b5 Mon Sep 17 00:00:00 2001 From: Hugo Trentesaux <hugo@trentesaux.fr> Date: Mon, 13 Jan 2025 19:43:23 +0100 Subject: [PATCH] fix bug from #276 --- pallets/smith-members/src/lib.rs | 2 +- pallets/smith-members/src/tests.rs | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs index 153189d98..e7c48962a 100644 --- a/pallets/smith-members/src/lib.rs +++ b/pallets/smith-members/src/lib.rs @@ -519,7 +519,7 @@ impl<T: Config> Pallet<T> { /// Handle the removal of Smiths whose expiration time has been reached at a given session index. fn on_exclude_expired_smiths(at: SessionIndex) { - if let Some(smiths_to_remove) = ExpiresOn::<T>::get(at) { + if let Some(smiths_to_remove) = ExpiresOn::<T>::take(at) { for smith in smiths_to_remove { if let Some(smith_meta) = Smiths::<T>::get(smith) { if let Some(expires_on) = smith_meta.expires_on { diff --git a/pallets/smith-members/src/tests.rs b/pallets/smith-members/src/tests.rs index c04bd2d17..c92bffb68 100644 --- a/pallets/smith-members/src/tests.rs +++ b/pallets/smith-members/src/tests.rs @@ -628,10 +628,9 @@ fn certifying_an_online_smith() { }); } -/// Shows that scheduled expiration stay scheduled forever, even in the past -/// This is harmful for storage because we store unnecessary data +/// Test that scheduled expiration is removed after session #[test] -fn expires_on_keeps_growing() { +fn expires_on_cleans_up() { new_test_ext(GenesisConfig { initial_smiths: btreemap![ 1 => (true, vec![2, 3]), @@ -666,8 +665,8 @@ fn expires_on_keeps_growing() { received_certs: vec![] }) ); - // but ExpiresOn schedule is still there (and will stay forever) - assert_eq!(ExpiresOn::<Runtime>::get(5), Some(vec![1])); + // ExpiresOn is clean + assert_eq!(ExpiresOn::<Runtime>::get(5), None); }); } -- GitLab