Skip to content

Commit 6bb7adb

Browse files
committed
refactor: fixed tests
1 parent 6fb2a21 commit 6bb7adb

File tree

3 files changed

+96
-18
lines changed

3 files changed

+96
-18
lines changed

cmd/cmd-utils_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ func TestGetEpochAndState(t *testing.T) {
2020
latestHeaderErr error
2121
bufferPercent int32
2222
bufferPercentErr error
23+
stateBuffer uint64
24+
stateBufferErr error
2325
state int64
2426
stateErr error
2527
stateName string
@@ -37,6 +39,7 @@ func TestGetEpochAndState(t *testing.T) {
3739
epoch: 4,
3840
latestHeader: &Types.Header{},
3941
bufferPercent: 20,
42+
stateBuffer: 5,
4043
state: 0,
4144
stateName: "commit",
4245
},
@@ -50,6 +53,7 @@ func TestGetEpochAndState(t *testing.T) {
5053
epochErr: errors.New("epoch error"),
5154
latestHeader: &Types.Header{},
5255
bufferPercent: 20,
56+
stateBuffer: 5,
5357
state: 0,
5458
stateName: "commit",
5559
},
@@ -76,6 +80,7 @@ func TestGetEpochAndState(t *testing.T) {
7680
epoch: 4,
7781
latestHeader: &Types.Header{},
7882
bufferPercent: 20,
83+
stateBuffer: 5,
7984
stateErr: errors.New("state error"),
8085
},
8186
wantEpoch: 0,
@@ -88,20 +93,46 @@ func TestGetEpochAndState(t *testing.T) {
8893
epoch: 4,
8994
latestHeaderErr: errors.New("header error"),
9095
bufferPercent: 20,
96+
stateBuffer: 5,
9197
state: 0,
9298
stateName: "commit",
9399
},
94100
wantEpoch: 0,
95101
wantState: 0,
96102
wantErr: errors.New("header error"),
97103
},
104+
{
105+
name: "Test 6: When validating buffer percent limit fails",
106+
args: args{
107+
epoch: 4,
108+
latestHeader: &Types.Header{},
109+
bufferPercent: 50,
110+
stateBuffer: 10,
111+
},
112+
wantEpoch: 0,
113+
wantState: 0,
114+
wantErr: errors.New("buffer percent exceeds limit"),
115+
},
116+
{
117+
name: "Test 7: When there is an error in validating buffer percent limit",
118+
args: args{
119+
epoch: 4,
120+
latestHeader: &Types.Header{},
121+
bufferPercent: 50,
122+
stateBufferErr: errors.New("state buffer error"),
123+
},
124+
wantEpoch: 0,
125+
wantState: 0,
126+
wantErr: errors.New("state buffer error"),
127+
},
98128
}
99129
for _, tt := range tests {
100130
t.Run(tt.name, func(t *testing.T) {
101131
SetUpMockInterfaces()
102132

103133
utilsMock.On("GetEpoch", mock.AnythingOfType("*ethclient.Client")).Return(tt.args.epoch, tt.args.epochErr)
104134
cmdUtilsMock.On("GetBufferPercent").Return(tt.args.bufferPercent, tt.args.bufferPercentErr)
135+
utilsMock.On("GetStateBuffer", mock.Anything).Return(tt.args.stateBuffer, tt.args.stateBufferErr)
105136
clientUtilsMock.On("GetLatestBlockWithRetry", mock.Anything).Return(tt.args.latestHeader, tt.args.latestHeaderErr)
106137
utilsMock.On("GetBufferedState", mock.Anything, mock.Anything, mock.Anything).Return(tt.args.state, tt.args.stateErr)
107138

cmd/config-utils_test.go

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
import (
44
"errors"
5+
"github.com/ethereum/go-ethereum/ethclient"
56
"github.com/spf13/viper"
67
"github.com/stretchr/testify/mock"
78
"os"
@@ -292,10 +293,10 @@ func TestGetBufferPercent(t *testing.T) {
292293
name: "Test 5: When buffer value is out of a valid range",
293294
useDummyConfigFile: true,
294295
args: args{
295-
bufferInTestConfig: 40,
296+
bufferInTestConfig: 0,
296297
},
297298
want: core.DefaultBufferPercent,
298-
wantErr: nil,
299+
wantErr: errors.New("invalid buffer percent"),
299300
},
300301
}
301302
for _, tt := range tests {
@@ -1199,3 +1200,62 @@ func TestGetWaitTime(t *testing.T) {
11991200
})
12001201
}
12011202
}
1203+
1204+
func TestValidateBufferPercentLimit(t *testing.T) {
1205+
var client *ethclient.Client
1206+
1207+
type args struct {
1208+
bufferPercent int32
1209+
stateBuffer uint64
1210+
stateBufferErr error
1211+
}
1212+
tests := []struct {
1213+
name string
1214+
args args
1215+
wantErr error
1216+
}{
1217+
{
1218+
name: "Buffer percent less than max buffer percent",
1219+
args: args{
1220+
stateBuffer: 10,
1221+
bufferPercent: 20,
1222+
},
1223+
wantErr: nil,
1224+
},
1225+
{
1226+
name: "Buffer percent greater than max buffer percent",
1227+
args: args{
1228+
stateBuffer: 10,
1229+
bufferPercent: 60,
1230+
},
1231+
wantErr: errors.New("buffer percent exceeds limit"),
1232+
},
1233+
{
1234+
name: "GetStateBuffer returns an error",
1235+
args: args{
1236+
stateBufferErr: errors.New("state buffer error"),
1237+
bufferPercent: 10,
1238+
},
1239+
wantErr: errors.New("state buffer error"),
1240+
},
1241+
}
1242+
for _, tt := range tests {
1243+
t.Run(tt.name, func(t *testing.T) {
1244+
SetUpMockInterfaces()
1245+
1246+
utilsMock.On("GetStateBuffer", mock.Anything).Return(tt.args.stateBuffer, tt.args.stateBufferErr)
1247+
1248+
err := ValidateBufferPercentLimit(client, tt.args.bufferPercent)
1249+
if err == nil || tt.wantErr == nil {
1250+
if err != tt.wantErr {
1251+
t.Errorf("Error for GetEpochAndState function, got = %v, want = %v", err, tt.wantErr)
1252+
}
1253+
} else {
1254+
if err.Error() != tt.wantErr.Error() {
1255+
t.Errorf("Error for GetEpochAndState function, got = %v, want = %v", err, tt.wantErr)
1256+
}
1257+
}
1258+
1259+
})
1260+
}
1261+
}

cmd/propose_test.go

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -429,19 +429,7 @@ func TestPropose(t *testing.T) {
429429
wantErr: errors.New("error in saving data"),
430430
},
431431
{
432-
name: "Test 17: When there is an error in getting buffer percent",
433-
args: args{
434-
state: 2,
435-
staker: bindings.StructsStaker{},
436-
numStakers: 5,
437-
biggestStake: big.NewInt(1).Mul(big.NewInt(5356), big.NewInt(1e18)),
438-
biggestStakerId: 2,
439-
bufferPercentErr: errors.New("buffer error"),
440-
},
441-
wantErr: errors.New("buffer error"),
442-
},
443-
{
444-
name: "Test 18: When rogue mode is on for biggestStakerId and propose exceutes successfully",
432+
name: "Test 17: When rogue mode is on for biggestStakerId and propose exceutes successfully",
445433
args: args{
446434
rogueData: types.Rogue{
447435
IsRogue: true,
@@ -468,7 +456,7 @@ func TestPropose(t *testing.T) {
468456
wantErr: nil,
469457
},
470458
{
471-
name: "Test 19: When rogue mode is on for biggestStakerId and there is an error in getting smallestStakerId",
459+
name: "Test 18: When rogue mode is on for biggestStakerId and there is an error in getting smallestStakerId",
472460
args: args{
473461
rogueData: types.Rogue{
474462
IsRogue: true,
@@ -494,7 +482,7 @@ func TestPropose(t *testing.T) {
494482
wantErr: errors.New("smallestStakerId error"),
495483
},
496484
{
497-
name: "Test 20: When there is an error in waitForCompletion",
485+
name: "Test 19: When there is an error in waitForCompletion",
498486
args: args{
499487
state: 2,
500488
staker: bindings.StructsStaker{},
@@ -539,7 +527,6 @@ func TestPropose(t *testing.T) {
539527
utilsMock.On("GetTxnOpts", mock.AnythingOfType("types.TransactionOptions")).Return(TxnOpts)
540528
blockManagerMock.On("Propose", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(tt.args.proposeTxn, tt.args.proposeErr)
541529
transactionMock.On("Hash", mock.Anything).Return(tt.args.hash)
542-
cmdUtilsMock.On("GetBufferPercent").Return(tt.args.bufferPercent, tt.args.bufferPercentErr)
543530
utilsMock.On("WaitForBlockCompletion", mock.AnythingOfType("*ethclient.Client"), mock.AnythingOfType("string")).Return(tt.args.waitForBlockCompletionErr)
544531

545532
utils := &UtilsStruct{}

0 commit comments

Comments
 (0)