Skip to content

Commit

Permalink
test: add TestHarvest
Browse files Browse the repository at this point in the history
  • Loading branch information
hallazzang committed Sep 10, 2021
1 parent ac9b122 commit bf27b36
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 25 deletions.
7 changes: 7 additions & 0 deletions x/farming/keeper/keeper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,13 @@ func (suite *KeeperTestSuite) QueuedCoins(farmerAcc sdk.AccAddress) sdk.Coins {
return queuedCoins
}

func (suite *KeeperTestSuite) Rewards(farmerAcc sdk.AccAddress) sdk.Coins {
cacheCtx, _ := suite.ctx.CacheContext()
rewards, err := suite.keeper.WithdrawAllRewards(cacheCtx, farmerAcc)
suite.Require().NoError(err)
return rewards
}

func intEq(exp, got sdk.Int) (bool, string, string, string) {
return exp.Equal(got), "expected:\t%v\ngot:\t\t%v", exp.String(), got.String()
}
Expand Down
49 changes: 24 additions & 25 deletions x/farming/keeper/reward_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,28 +170,27 @@ func (suite *KeeperTestSuite) TestAllocateRewards() {
}
}

//
//func (suite *KeeperTestSuite) TestHarvest() {
// for _, plan := range suite.samplePlans {
// suite.keeper.SetPlan(suite.ctx, plan)
// }
//
// suite.Stake(suite.addrs[0], sdk.NewCoins(sdk.NewInt64Coin(denom1, 1_000_000)))
// suite.keeper.ProcessQueuedCoins(suite.ctx)
//
// balancesBefore := suite.app.BankKeeper.GetAllBalances(suite.ctx, suite.addrs[0])
//
// suite.ctx = suite.ctx.WithBlockTime(mustParseRFC3339("2021-08-05T00:00:00Z"))
// err := suite.keeper.AllocateRewards(suite.ctx)
// suite.Require().NoError(err)
//
// rewards := suite.keeper.GetRewardsByFarmer(suite.ctx, suite.addrs[0])
// suite.Require().Len(rewards, 1)
// err = suite.keeper.Harvest(suite.ctx, suite.addrs[0], []string{denom1})
// suite.Require().NoError(err)
//
// balancesAfter := suite.app.BankKeeper.GetAllBalances(suite.ctx, suite.addrs[0])
// suite.Require().True(coinsEq(balancesBefore.Add(rewards[0].RewardCoins...), balancesAfter))
// suite.Require().True(suite.app.BankKeeper.GetAllBalances(suite.ctx, suite.keeper.GetRewardsReservePoolAcc(suite.ctx)).IsZero())
// suite.Require().Empty(suite.keeper.GetRewardsByFarmer(suite.ctx, suite.addrs[0]))
//}
func (suite *KeeperTestSuite) TestHarvest() {
for _, plan := range suite.samplePlans {
suite.keeper.SetPlan(suite.ctx, plan)
}

suite.Stake(suite.addrs[0], sdk.NewCoins(sdk.NewInt64Coin(denom1, 1_000_000)))
suite.keeper.ProcessQueuedCoins(suite.ctx)

balancesBefore := suite.app.BankKeeper.GetAllBalances(suite.ctx, suite.addrs[0])

suite.ctx = suite.ctx.WithBlockTime(mustParseRFC3339("2021-08-05T00:00:00Z"))
err := suite.keeper.AllocateRewards(suite.ctx)
suite.Require().NoError(err)

rewards := suite.Rewards(suite.addrs[0])

err = suite.keeper.Harvest(suite.ctx, suite.addrs[0], []string{denom1})
suite.Require().NoError(err)

balancesAfter := suite.app.BankKeeper.GetAllBalances(suite.ctx, suite.addrs[0])
suite.Require().True(coinsEq(balancesBefore.Add(rewards...), balancesAfter))
suite.Require().True(suite.app.BankKeeper.GetAllBalances(suite.ctx, suite.keeper.GetRewardsReservePoolAcc(suite.ctx)).IsZero())
suite.Require().True(suite.Rewards(suite.addrs[0]).IsZero())
}

0 comments on commit bf27b36

Please sign in to comment.