@@ -1071,6 +1071,58 @@ fn test_migrate() {
10711071 assert_eq ! ( version. version, CONTRACT_VERSION ) ;
10721072}
10731073
1074+ #[ test]
1075+ fn test_change_member_vp ( ) {
1076+ let mut suite = Cw4DaoVoteDelegationTestingSuite :: new ( ) . build ( ) ;
1077+
1078+ suite. register ( ADDR0 ) ;
1079+ suite. delegate ( ADDR1 , ADDR0 , Decimal :: percent ( 100 ) ) ;
1080+ suite. advance_block ( ) ;
1081+
1082+ // ensure all of ADDR0's voting power is delegated to ADDR1
1083+ let initial_vp = suite. members [ 1 ] . weight ;
1084+ suite. assert_delegate_total_delegated_vp ( ADDR0 , initial_vp) ;
1085+
1086+ // double ADDR0's voting power
1087+ let new_vp = initial_vp * 2 ;
1088+ let dao_core_addr = suite. dao . core_addr . clone ( ) ;
1089+ let group_addr = suite. dao . x . group_addr . clone ( ) ;
1090+ suite. execute_smart_ok (
1091+ & dao_core_addr,
1092+ & group_addr,
1093+ & cw4_group:: msg:: ExecuteMsg :: UpdateMembers {
1094+ add : vec ! [ cw4:: Member {
1095+ addr: ADDR1 . to_string( ) ,
1096+ weight: new_vp,
1097+ } ] ,
1098+ remove : vec ! [ ] ,
1099+ } ,
1100+ & [ ] ,
1101+ ) ;
1102+ suite. advance_block ( ) ;
1103+
1104+ // ensure all of ADDR0's new voting power is now delegated to ADDR1
1105+ suite. assert_delegate_total_delegated_vp ( ADDR0 , new_vp) ;
1106+ }
1107+
1108+ #[ test]
1109+ fn test_auto_unregister ( ) {
1110+ let mut suite = TokenDaoVoteDelegationTestingSuite :: new ( ) . build ( ) ;
1111+
1112+ suite. register ( ADDR0 ) ;
1113+
1114+ suite. advance_block ( ) ;
1115+
1116+ suite. assert_delegate_registered ( ADDR0 , None ) ;
1117+
1118+ // unstake all tokens, which should automatically unregister the delegate
1119+ suite. unstake ( ADDR0 , suite. members [ 0 ] . amount ) ;
1120+
1121+ suite. advance_block ( ) ;
1122+
1123+ suite. assert_delegate_not_registered ( ADDR0 , None ) ;
1124+ }
1125+
10741126/// this test does not actually test gas limits, since cw-multi-test does not
10751127/// run a real chain, but it is demonstrative of what behaviors may lead to high
10761128/// gas usage. this test is replicated in the DAO DAO UI codebase using an
0 commit comments