Skip to content

Commit 3d68f2d

Browse files
committed
test: writing test for all error cases
1 parent ac828bb commit 3d68f2d

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

engine/engine_test.go

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,5 +207,81 @@ func TestClaim(t *testing.T) {
207207
claimTx, err := eng.Claim([]string{valAddress, discordID})
208208
assert.NoError(t, err)
209209
assert.NotNil(t, claimTx)
210+
211+
assert.Equal(t, amount, claimTx.Amount)
212+
assert.Equal(t, txID, claimTx.TxID)
213+
assert.Equal(t, time, claimTx.Time)
214+
215+
//! can't claim twice.
216+
claimTx, err = eng.Claim([]string{valAddress, discordID})
217+
assert.EqualError(t, err, "this claimer have already claimed rewards")
218+
assert.Nil(t, claimTx)
219+
})
220+
221+
t.Run("missing arguments", func(t *testing.T) {
222+
claimTx, err := eng.Claim([]string{})
223+
assert.EqualError(t, err, "missing argument: validator address")
224+
assert.Nil(t, claimTx)
225+
})
226+
227+
t.Run("claimer not found", func(t *testing.T) {
228+
valAddress := "pc1p74scge5dyzjktv9q70xtr0pjmyqcqk7nuh8nzp"
229+
discordID := "987654321"
230+
231+
store.EXPECT().ClaimerInfo(discordID).Return(
232+
nil,
233+
)
234+
235+
claimTx, err := eng.Claim([]string{valAddress, discordID})
236+
assert.EqualError(t, err, "claimer not found")
237+
assert.Nil(t, claimTx)
238+
})
239+
240+
t.Run("not validator address", func(t *testing.T) {
241+
valAddress := "pc1p74scge5dyzjktv9q70xtr0pjmyqcqk7nuh8nzp"
242+
discordID := "1234567890"
243+
amount := 74.68
244+
245+
store.EXPECT().ClaimerInfo(discordID).Return(
246+
&rpstore.Claimer{
247+
DiscordID: discordID,
248+
TotalReward: amount,
249+
},
250+
)
251+
252+
client.EXPECT().IsValidator(valAddress).Return(
253+
false, nil,
254+
)
255+
256+
claimTx, err := eng.Claim([]string{valAddress, discordID})
257+
assert.EqualError(t, err, "invalid argument: validator address")
258+
assert.Nil(t, claimTx)
259+
})
260+
261+
t.Run("empty transaction ID", func(t *testing.T) {
262+
valAddress := "pc1p74scge5dyzjktv9q70xtr0pjmyqcqk7nuh8nzp"
263+
discordID := "1234567890"
264+
amount := 74.68
265+
266+
client.EXPECT().IsValidator(valAddress).Return(
267+
true, nil,
268+
)
269+
270+
store.EXPECT().ClaimerInfo(discordID).Return(
271+
&rpstore.Claimer{
272+
DiscordID: discordID,
273+
TotalReward: amount,
274+
ClaimTransaction: nil,
275+
},
276+
)
277+
278+
memo := fmt.Sprintf("RP to: %v", discordID)
279+
wallet.EXPECT().BondTransaction("", valAddress, memo, amount).Return(
280+
"", nil,
281+
)
282+
283+
claimTx, err := eng.Claim([]string{valAddress, discordID})
284+
assert.EqualError(t, err, "can't send bond transaction")
285+
assert.Nil(t, claimTx)
210286
})
211287
}

0 commit comments

Comments
 (0)