mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 00:27:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package testutil
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/stretchr/testify/suite"
 | 
						|
 | 
						|
	sdkmath "cosmossdk.io/math"
 | 
						|
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
						|
 | 
						|
	tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
 | 
						|
	tmtime "github.com/cometbft/cometbft/types/time"
 | 
						|
 | 
						|
	authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
 | 
						|
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
 | 
						|
	bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
 | 
						|
 | 
						|
	"github.com/kava-labs/kava/app"
 | 
						|
	"github.com/kava-labs/kava/x/auction/keeper"
 | 
						|
	"github.com/kava-labs/kava/x/auction/types"
 | 
						|
)
 | 
						|
 | 
						|
// Suite implements a test suite for the kavadist module integration tests
 | 
						|
type Suite struct {
 | 
						|
	suite.Suite
 | 
						|
 | 
						|
	Keeper        keeper.Keeper
 | 
						|
	BankKeeper    bankkeeper.Keeper
 | 
						|
	AccountKeeper authkeeper.AccountKeeper
 | 
						|
	App           app.TestApp
 | 
						|
	Ctx           sdk.Context
 | 
						|
	Addrs         []sdk.AccAddress
 | 
						|
	ModAcc        *authtypes.ModuleAccount
 | 
						|
}
 | 
						|
 | 
						|
// SetupTest instantiates a new app, keepers, and sets suite state
 | 
						|
func (suite *Suite) SetupTest(numAddrs int) {
 | 
						|
	config := sdk.GetConfig()
 | 
						|
	app.SetBech32AddressPrefixes(config)
 | 
						|
	tApp := app.NewTestApp()
 | 
						|
 | 
						|
	_, addrs := app.GeneratePrivKeyAddressPairs(numAddrs)
 | 
						|
 | 
						|
	// Fund liquidator module account
 | 
						|
	coins := sdk.NewCoins(
 | 
						|
		sdk.NewCoin("token1", sdkmath.NewInt(100)),
 | 
						|
		sdk.NewCoin("token2", sdkmath.NewInt(100)),
 | 
						|
	)
 | 
						|
 | 
						|
	ctx := tApp.NewContext(true, tmproto.Header{Height: 1, Time: tmtime.Now()})
 | 
						|
 | 
						|
	modName := "liquidator"
 | 
						|
	modBaseAcc := authtypes.NewBaseAccount(authtypes.NewModuleAddress(modName), nil, 0, 0)
 | 
						|
	modAcc := authtypes.NewModuleAccount(modBaseAcc, modName, []string{authtypes.Minter, authtypes.Burner}...)
 | 
						|
	suite.ModAcc = modAcc
 | 
						|
 | 
						|
	authGS := app.NewFundedGenStateWithSameCoinsWithModuleAccount(tApp.AppCodec(), coins, addrs, modAcc)
 | 
						|
 | 
						|
	params := types.NewParams(
 | 
						|
		types.DefaultMaxAuctionDuration,
 | 
						|
		types.DefaultForwardBidDuration,
 | 
						|
		types.DefaultReverseBidDuration,
 | 
						|
		types.DefaultIncrement,
 | 
						|
		types.DefaultIncrement,
 | 
						|
		types.DefaultIncrement,
 | 
						|
	)
 | 
						|
 | 
						|
	auctionGs, err := types.NewGenesisState(types.DefaultNextAuctionID, params, []types.GenesisAuction{})
 | 
						|
	suite.Require().NoError(err)
 | 
						|
 | 
						|
	moduleGs := tApp.AppCodec().MustMarshalJSON(auctionGs)
 | 
						|
	gs := app.GenesisState{types.ModuleName: moduleGs}
 | 
						|
	tApp.InitializeFromGenesisStates(authGS, gs)
 | 
						|
 | 
						|
	suite.App = tApp
 | 
						|
	suite.Ctx = ctx
 | 
						|
	suite.Addrs = addrs
 | 
						|
	suite.Keeper = tApp.GetAuctionKeeper()
 | 
						|
	suite.BankKeeper = tApp.GetBankKeeper()
 | 
						|
	suite.AccountKeeper = tApp.GetAccountKeeper()
 | 
						|
}
 | 
						|
 | 
						|
// AddCoinsToNamedModule adds coins to a named module account
 | 
						|
func (suite *Suite) AddCoinsToNamedModule(moduleName string, amount sdk.Coins) {
 | 
						|
	// Does not use suite.BankKeeper.MintCoins as module account would not have permission to mint
 | 
						|
	err := suite.App.FundModuleAccount(suite.Ctx, moduleName, amount)
 | 
						|
	suite.Require().NoError(err)
 | 
						|
}
 | 
						|
 | 
						|
// CheckAccountBalanceEqual asserts that
 | 
						|
func (suite *Suite) CheckAccountBalanceEqual(owner sdk.AccAddress, expectedCoins sdk.Coins) {
 | 
						|
	balances := suite.BankKeeper.GetAllBalances(suite.Ctx, owner)
 | 
						|
	suite.Equal(expectedCoins, balances)
 | 
						|
}
 |