@@ -304,3 +304,60 @@ fn test_revoke_membership_with_wrong_account_id_should_fail() {
304304 ) ;
305305 } ) ;
306306}
307+
308+ #[ test]
309+ fn test_revoke_membership_non_existent ( ) {
310+ new_test_ext ( ) . execute_with ( || {
311+ run_to_block ( 1 ) ;
312+
313+ // Attempt to revoke a membership for a non-existent account
314+ assert_err ! (
315+ NetworkMembership :: revoke( RawOrigin :: Root . into( ) , AccountId :: new( [ 99u8 ; 32 ] ) , ) ,
316+ Error :: <Test >:: MembershipNotFound
317+ ) ;
318+
319+ assert_eq ! ( NetworkMembership :: members_count( ) , 1 ) ; // No changes to member count
320+ } ) ;
321+ }
322+
323+ #[ test]
324+ fn test_check_membership_non_existent ( ) {
325+ new_test_ext ( ) . execute_with ( || {
326+ run_to_block ( 1 ) ;
327+
328+ // Check if a non-existent account is a member
329+ // assert!(!NetworkMembership::is_member(&AccountId::new([99u8; 32])));
330+
331+ assert_err ! (
332+ NetworkMembership :: nominate(
333+ RuntimeOrigin :: signed( AccountId :: new( [ 11u8 ; 32 ] ) ) ,
334+ AccountId :: new( [ 13u8 ; 32 ] ) ,
335+ true
336+ ) ,
337+ BadOrigin
338+ ) ;
339+
340+ assert_eq ! ( NetworkMembership :: is_member( & AccountId :: new( [ 99u8 ; 32 ] ) ) , false ) ;
341+ } ) ;
342+ }
343+
344+ #[ test]
345+ fn test_auto_expire_non_existent_membership ( ) {
346+ new_test_ext ( ) . execute_with ( || {
347+ run_to_block ( 1 ) ;
348+
349+ // Check that a non-existent account cannot expire
350+ run_to_block ( 10 ) ; // Advance time beyond the expiration period
351+
352+ assert_err ! (
353+ NetworkMembership :: nominate(
354+ RuntimeOrigin :: signed( AccountId :: new( [ 11u8 ; 32 ] ) ) ,
355+ AccountId :: new( [ 13u8 ; 32 ] ) ,
356+ true
357+ ) ,
358+ BadOrigin
359+ ) ;
360+
361+ assert_eq ! ( NetworkMembership :: is_member( & AccountId :: new( [ 99u8 ; 32 ] ) ) , false ) ;
362+ } ) ;
363+ }
0 commit comments