@@ -15,13 +15,13 @@ func (s *KeeperTestSuite) TestGetSetProposers() {
1515 require .NoError (err )
1616 require .Empty (proposers )
1717
18- // Create three bonded validators and one unbonding validator
19- validators := make ([]string , 4 )
20- for i := 0 ; i < 4 ; i ++ {
18+ // Create six validators: 5 bonded and 1 unbonding
19+ validators := make ([]string , 6 )
20+ for i := 0 ; i < 6 ; i ++ {
2121 valPubKey := PKs [i ]
2222 valAddr := sdk .ValAddress (valPubKey .Address ().Bytes ())
2323 validator := testutil .NewValidator (s .T (), valAddr , valPubKey )
24- if i == 3 {
24+ if i == 5 {
2525 validator .Status = types .Unbonding
2626 } else {
2727 validator .Status = types .Bonded
@@ -31,25 +31,21 @@ func (s *KeeperTestSuite) TestGetSetProposers() {
3131 require .NoError (err )
3232 }
3333
34- // Set the first validator as a proposer and verify
35- err = keeper .SetProposers (ctx , validators [:1 ])
34+ // Set first 5 validators as proposers and verify
35+ err = keeper .SetProposers (ctx , validators [:5 ])
3636 require .NoError (err )
3737
3838 proposers , err = keeper .GetProposers (ctx )
3939 require .NoError (err )
40- require .Equal (validators [:1 ], proposers )
40+ require .Equal (validators [:5 ], proposers )
4141
42- // Set last two validators as proposers and verify
43- // Should succeed as there's at least one bonded proposer
44- err = keeper .SetProposers (ctx , validators [2 :])
45- require .NoError (err )
46-
47- proposers , err = keeper .GetProposers (ctx )
48- require .NoError (err )
49- require .Equal (validators [2 :], proposers )
42+ // Set last 5 validators as proposers
43+ // Should fail as there are insufficient bonded proposers
44+ err = keeper .SetProposers (ctx , validators [1 :])
45+ require .Error (err )
46+ require .ErrorContains (err , "proposer set only has 4 bonded validators, less than the required 5" )
5047
5148 // Set all validators as proposers and verify
52- // Should succeed as there's at least one bonded proposer
5349 err = keeper .SetProposers (ctx , validators )
5450 require .NoError (err )
5551
@@ -74,9 +70,11 @@ func (s *KeeperTestSuite) TestSetProposersErrors() {
7470 valPubKey := PKs [0 ]
7571 valAddr := sdk .ValAddress (valPubKey .Address ().Bytes ())
7672 validator := testutil .NewValidator (s .T (), valAddr , valPubKey )
73+ err := keeper .SetValidator (ctx , validator )
74+ require .NoError (err )
7775
7876 // Should return error given invalid addresses
79- err : = keeper .SetProposers (ctx , []string {"invalid-address" })
77+ err = keeper .SetProposers (ctx , []string {"invalid-address" })
8078 require .Error (err , "SetProposers with invalid address should return error" )
8179
8280 // Should return error for non-operator addresses (e.g. account and consensus addresses)
@@ -93,11 +91,4 @@ func (s *KeeperTestSuite) TestSetProposersErrors() {
9391 nonExistentValAddr := sdk .ValAddress (nonExistentPubKey .Address ().Bytes ())
9492 err = keeper .SetProposers (ctx , []string {nonExistentValAddr .String ()})
9593 require .ErrorContains (err , "validator does not exist" )
96-
97- // Should return error if no proposer is bonded.
98- validator .Status = types .Unbonded
99- err = keeper .SetValidator (ctx , validator )
100- require .NoError (err )
101- err = keeper .SetProposers (ctx , []string {validator .OperatorAddress })
102- require .ErrorContains (err , "at least one proposer must be bonded" )
10394}
0 commit comments