Skip to content

Commit

Permalink
add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
n8wb committed Dec 23, 2024
1 parent 0706b57 commit 227534c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 21 deletions.
2 changes: 1 addition & 1 deletion kernels/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func (er EarnRequest) Clone() EarnRequest {
func (e EarnRequest) ReferralBonuses(referralChain []string, tierEarnRates map[int]*big.Rat) ([]EarnRequest, error) {
var out []EarnRequest

if e.SourceUser == "" || e.SourceUser == e.UserAddr || len(referralChain) == 0 {
if e.GetSourceUser() != e.UserAddr || len(referralChain) == 0 {
return nil, nil
}

Expand Down
56 changes: 36 additions & 20 deletions kernels/request_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,37 +189,53 @@ func Test_EarnRequest_GetSourceUser(t *testing.T) {

func Test_EarnRequest_ReferralBonuses(t *testing.T) {
t.Parallel()
rq := EarnRequest{
UserAddr: testutils.GenRandEVMAddr(),
Source: "source",
StartBlock: 1,
StartTime: 0,
EarnRate: "100",
}

tierRates := map[int]*big.Rat{
0: big.NewRat(1, 10),
1: big.NewRat(1, 20),
2: big.NewRat(1, 30),
3: big.NewRat(1, 40),
}

referralChain := []string{testutils.GenRandEVMAddr(), testutils.GenRandEVMAddr()}
t.Run("happy path", func(t *testing.T) {
rq := EarnRequest{
UserAddr: testutils.GenRandEVMAddr(),
Source: "source",
StartBlock: 1,
StartTime: 0,
EarnRate: "100",
}

referralChain := []string{testutils.GenRandEVMAddr(), testutils.GenRandEVMAddr()}

bonuses, err := rq.ReferralBonuses(referralChain, tierRates)
require.NoError(t, err)
bonuses, err := rq.ReferralBonuses(referralChain, tierRates)
require.NoError(t, err)

require.Len(t, bonuses, 2)
require.Len(t, bonuses, 2)

for i := range bonuses {
require.Equal(t, referralChain[i], bonuses[i].UserAddr)
require.Equal(t, rq.GetSourceUser(), bonuses[i].SourceUser)
require.Equal(t, rq.StartBlock, bonuses[i].StartBlock)
require.Equal(t, rq.StartTime, bonuses[i].StartTime)
}
for i := range bonuses {
require.Equal(t, referralChain[i], bonuses[i].UserAddr)
require.Equal(t, rq.GetSourceUser(), bonuses[i].SourceUser)
require.Equal(t, rq.StartBlock, bonuses[i].StartBlock)
require.Equal(t, rq.StartTime, bonuses[i].StartTime)
}

require.EqualValues(t, fmt.Sprintf("%d", int(100*1/tierRates[0].Denom().Int64())), bonuses[0].EarnRate)
require.EqualValues(t, fmt.Sprintf("%d", int(100*1/tierRates[1].Denom().Int64())), bonuses[1].EarnRate)
require.EqualValues(t, fmt.Sprintf("%d", int(100*1/tierRates[0].Denom().Int64())), bonuses[0].EarnRate)
require.EqualValues(t, fmt.Sprintf("%d", int(100*1/tierRates[1].Denom().Int64())), bonuses[1].EarnRate)
})

t.Run("source user set", func(t *testing.T) {
req := EarnRequest{
EarnRate: "100",
UserAddr: testutils.GenRandEVMAddr(),
SourceUser: testutils.GenRandEVMAddr(),
Source: "ohio",
SubSource: "corn",
}

res, err := req.ReferralBonuses([]string{testutils.GenRandEVMAddr(), testutils.GenRandEVMAddr()}, tierRates)
require.NoError(t, err)
require.Nil(t, res)
})

}

Expand Down

0 comments on commit 227534c

Please sign in to comment.