diff --git a/pallets/smith-members/src/tests.rs b/pallets/smith-members/src/tests.rs
index a200d0551e9685aab6b283bb2d291030a4905c6f..46430f600cc2dd30b72de61afe26bf5d635746db 100644
--- a/pallets/smith-members/src/tests.rs
+++ b/pallets/smith-members/src/tests.rs
@@ -580,21 +580,24 @@ fn certifying_an_online_smith() {
             RuntimeOrigin::signed(1),
             5
         ));
+        Pallet::<Runtime>::on_new_session(3);
         assert_ok!(Pallet::<Runtime>::certify_smith(
             RuntimeOrigin::signed(2),
             5
         ));
         // Smith can expire
+        // TODO: test failing because expires_on is not postponed to session 8
         assert_eq!(
             Smiths::<Runtime>::get(5),
             Some(SmithMeta {
                 status: Smith,
-                expires_on: Some(7),
+                expires_on: Some(8),
                 issued_certs: vec![],
                 received_certs: vec![1, 2]
             })
         );
         assert_eq!(ExpiresOn::<Runtime>::get(7), Some(vec![5]));
+        assert_eq!(ExpiresOn::<Runtime>::get(8), Some(vec![5]));
 
         Pallet::<Runtime>::on_smith_goes_online(5);
         // After going online, the expiration disappears
@@ -609,6 +612,7 @@ fn certifying_an_online_smith() {
         );
         // ExpiresOn is not unscheduled, but as expires_on has switched to None it's not a problem
         assert_eq!(ExpiresOn::<Runtime>::get(7), Some(vec![5]));
+        assert_eq!(ExpiresOn::<Runtime>::get(8), Some(vec![5]));
 
         // We can receive certification without postponing the expiration (because we are online)
         assert_ok!(Pallet::<Runtime>::certify_smith(