cosmos-sdk/x/protocolpool/keeper/genesis_test.go
mergify[bot] 0083431ba9
feat(x/protocolpool)!: allow any coins in continuous funds (backport #21916) (#22512)
Co-authored-by: Facundo Medica <14063057+facundomedica@users.noreply.github.com>
Co-authored-by: Facundo <facundomedica@gmail.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
2024-11-18 11:30:03 +01:00

54 lines
1.6 KiB
Go

package keeper_test
import (
"time"
"cosmossdk.io/math"
"cosmossdk.io/x/protocolpool/types"
sdk "github.com/cosmos/cosmos-sdk/types"
)
func (suite *KeeperTestSuite) TestInitGenesis() {
hour := time.Hour
gs := types.NewGenesisState(
[]*types.ContinuousFund{
{
Recipient: "cosmos1qy3529yj3v4xw2z3vz3vz3vz3vz3vz3v3k0vyf",
Percentage: math.LegacyMustNewDecFromStr("0.1"),
Expiry: nil,
},
},
[]*types.Budget{
{
RecipientAddress: "cosmos1qy3529yj3v4xw2z3vz3vz3vz3vz3vz3v3k0vyf",
ClaimedAmount: &sdk.Coin{},
LastClaimedAt: &time.Time{},
TranchesLeft: 10,
BudgetPerTranche: &sdk.Coin{Denom: "stake", Amount: math.NewInt(100)},
Period: &hour,
},
},
)
gs.Distributions = append(gs.Distributions, &types.Distribution{
Amount: types.DistributionAmount{Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(100)))},
Time: &time.Time{},
})
err := suite.poolKeeper.InitGenesis(suite.ctx, gs)
suite.Require().ErrorContains(err, "total to be distributed is greater than the last balance")
// Set last balance
gs.LastBalance = types.DistributionAmount{Amount: sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(101)))}
err = suite.poolKeeper.InitGenesis(suite.ctx, gs)
suite.Require().NoError(err)
// Export
exportedGenState, err := suite.poolKeeper.ExportGenesis(suite.ctx)
suite.Require().NoError(err)
suite.Require().Equal(gs.ContinuousFund, exportedGenState.ContinuousFund)
suite.Require().Equal(gs.Budget, exportedGenState.Budget)
suite.Require().Equal(math.NewInt(101), exportedGenState.LastBalance.Amount.AmountOf("stake"))
}