Skip to content

Commit 381a354

Browse files
authored
test: adjusts precisebank module account balance to expected amount (#837)
checks current balance and either burns excess or mints deficit to reach target
1 parent ee23828 commit 381a354

File tree

1 file changed

+28
-44
lines changed

1 file changed

+28
-44
lines changed

tests/integration/x/precisebank/test_genesis.go

Lines changed: 28 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,29 @@ func (s *GenesisTestSuite) SetupTestWithChainID(chainID testconstants.ChainID) {
4848
})
4949
}
5050

51+
func (s *GenesisTestSuite) adjustModuleBalance(expectedAmt sdkmath.Int) {
52+
moduleAddr := s.network.App.GetAccountKeeper().GetModuleAddress(types.ModuleName)
53+
balance := s.network.App.GetBankKeeper().GetBalance(s.network.GetContext(), moduleAddr, types.IntegerCoinDenom())
54+
55+
if balance.Amount.GT(expectedAmt) {
56+
// Burn excess
57+
err := s.network.App.GetBankKeeper().BurnCoins(
58+
s.network.GetContext(),
59+
types.ModuleName,
60+
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), balance.Amount.Sub(expectedAmt))),
61+
)
62+
s.Require().NoError(err)
63+
} else if balance.Amount.LT(expectedAmt) {
64+
// Mint deficit
65+
err := s.network.App.GetBankKeeper().MintCoins(
66+
s.network.GetContext(),
67+
types.ModuleName,
68+
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), expectedAmt.Sub(balance.Amount))),
69+
)
70+
s.Require().NoError(err)
71+
}
72+
}
73+
5174
func (s *GenesisTestSuite) TestInitGenesis() {
5275
tests := []struct {
5376
name string
@@ -72,12 +95,7 @@ func (s *GenesisTestSuite) TestInitGenesis() {
7295
func() {
7396
// The network setup creates an initial balance of 1, so we need to mint 1 more
7497
// to get to the expected amount of 2 for this test case
75-
err := s.network.App.GetBankKeeper().MintCoins(
76-
s.network.GetContext(),
77-
types.ModuleName,
78-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(1))),
79-
)
80-
s.Require().NoError(err)
98+
s.adjustModuleBalance(sdkmath.NewInt(2))
8199
},
82100
types.NewGenesisState(
83101
types.FractionalBalances{
@@ -107,12 +125,7 @@ func (s *GenesisTestSuite) TestInitGenesis() {
107125
func() {
108126
// The network setup creates an initial balance of 1, so we need to burn that
109127
// to get to 0 balance for this test case
110-
err := s.network.App.GetBankKeeper().BurnCoins(
111-
s.network.GetContext(),
112-
types.ModuleName,
113-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(1))),
114-
)
115-
s.Require().NoError(err)
128+
s.adjustModuleBalance(sdkmath.ZeroInt())
116129
},
117130
types.NewGenesisState(
118131
types.FractionalBalances{
@@ -130,12 +143,7 @@ func (s *GenesisTestSuite) TestInitGenesis() {
130143
func() {
131144
// The network setup creates an initial balance of 1, so we need to mint 99 more
132145
// to get to 100 total balance for this test case
133-
err := s.network.App.GetBankKeeper().MintCoins(
134-
s.network.GetContext(),
135-
types.ModuleName,
136-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(99))),
137-
)
138-
s.Require().NoError(err)
146+
s.adjustModuleBalance(sdkmath.NewInt(100))
139147
},
140148
types.NewGenesisState(
141149
types.FractionalBalances{
@@ -235,19 +243,7 @@ func (s *GenesisTestSuite) TestExportGenesis() {
235243
"balances, no remainder",
236244
func() *types.GenesisState {
237245
// Burn the initial balance created by network setup, then mint the expected amount
238-
err := s.network.App.GetBankKeeper().BurnCoins(
239-
s.network.GetContext(),
240-
types.ModuleName,
241-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(1))),
242-
)
243-
s.Require().NoError(err)
244-
245-
err = s.network.App.GetBankKeeper().MintCoins(
246-
s.network.GetContext(),
247-
types.ModuleName,
248-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(1))),
249-
)
250-
s.Require().NoError(err)
246+
s.adjustModuleBalance(sdkmath.NewInt(1))
251247

252248
return types.NewGenesisState(
253249
types.FractionalBalances{
@@ -262,19 +258,7 @@ func (s *GenesisTestSuite) TestExportGenesis() {
262258
"balances, remainder",
263259
func() *types.GenesisState {
264260
// Burn the initial balance created by network setup, then mint the expected amount
265-
err := s.network.App.GetBankKeeper().BurnCoins(
266-
s.network.GetContext(),
267-
types.ModuleName,
268-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(1))),
269-
)
270-
s.Require().NoError(err)
271-
272-
err = s.network.App.GetBankKeeper().MintCoins(
273-
s.network.GetContext(),
274-
types.ModuleName,
275-
sdk.NewCoins(sdk.NewCoin(types.IntegerCoinDenom(), sdkmath.NewInt(1))),
276-
)
277-
s.Require().NoError(err)
261+
s.adjustModuleBalance(sdkmath.NewInt(1))
278262

279263
return types.NewGenesisState(
280264
types.FractionalBalances{

0 commit comments

Comments
 (0)