github.com/KiraCore/sekai@v0.3.43/x/tokens/keeper/rate_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	"github.com/KiraCore/sekai/x/tokens/types"
     5  	sdk "github.com/cosmos/cosmos-sdk/types"
     6  )
     7  
     8  func (suite *KeeperTestSuite) TestTokenRates() {
     9  	suite.SetupTest()
    10  	ctx := suite.ctx
    11  
    12  	// check initial token rate before registration
    13  	rate := suite.app.TokensKeeper.GetTokenRate(ctx, "stake")
    14  	suite.Require().Nil(rate)
    15  	rates := suite.app.TokensKeeper.GetAllTokenRates(ctx)
    16  	suite.Require().Len(rates, 4)
    17  	rateMap := suite.app.TokensKeeper.GetTokenRatesByDenom(ctx, []string{"stake"})
    18  	suite.Require().Equal(len(rateMap), 0)
    19  	suite.Require().Nil(rateMap["stake"])
    20  
    21  	// upsert token rate and check
    22  	newRate := types.TokenRate{
    23  		Denom:       "stake",
    24  		FeeRate:     sdk.NewDec(2),
    25  		FeePayments: true,
    26  	}
    27  	suite.app.TokensKeeper.UpsertTokenRate(ctx, newRate)
    28  	rate = suite.app.TokensKeeper.GetTokenRate(ctx, "stake")
    29  	suite.Require().NotNil(rate)
    30  	rates = suite.app.TokensKeeper.GetAllTokenRates(ctx)
    31  	suite.Require().Len(rates, 5)
    32  	rateMap = suite.app.TokensKeeper.GetTokenRatesByDenom(ctx, []string{"stake"})
    33  	suite.Require().Equal(len(rateMap), 1)
    34  	suite.Require().NotNil(rateMap["stake"])
    35  
    36  	// delete token rate and check
    37  	suite.app.TokensKeeper.DeleteTokenRate(ctx, "stake")
    38  	rate = suite.app.TokensKeeper.GetTokenRate(ctx, "stake")
    39  	suite.Require().Nil(rate)
    40  	rates = suite.app.TokensKeeper.GetAllTokenRates(ctx)
    41  	suite.Require().Len(rates, 4)
    42  	rateMap = suite.app.TokensKeeper.GetTokenRatesByDenom(ctx, []string{"stake"})
    43  	suite.Require().Equal(len(rateMap), 0)
    44  	suite.Require().Nil(rateMap["stake"])
    45  }