@@ -1071,6 +1071,58 @@ fn test_migrate() {
1071
1071
assert_eq ! ( version. version, CONTRACT_VERSION ) ;
1072
1072
}
1073
1073
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
+
1074
1126
/// this test does not actually test gas limits, since cw-multi-test does not
1075
1127
/// run a real chain, but it is demonstrative of what behaviors may lead to high
1076
1128
/// gas usage. this test is replicated in the DAO DAO UI codebase using an
0 commit comments