Files
sonr/x/svc/keeper/keeper_test.go
T

134 lines
4.2 KiB
Go
Raw Normal View History

2024-09-25 19:45:28 -04:00
package keeper_test
import (
"testing"
2024-11-26 22:05:50 -05:00
"github.com/stretchr/testify/suite"
2024-09-25 19:45:28 -04:00
"cosmossdk.io/log"
storetypes "cosmossdk.io/store/types"
2024-11-26 22:05:50 -05:00
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
2024-09-25 19:45:28 -04:00
"github.com/cosmos/cosmos-sdk/runtime"
2024-11-26 22:05:50 -05:00
"github.com/cosmos/cosmos-sdk/testutil/integration"
2024-09-25 19:45:28 -04:00
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec"
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"
2024-11-26 22:05:50 -05:00
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
2024-09-25 19:45:28 -04:00
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper"
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
2025-03-27 04:14:38 -04:00
module "github.com/sonr-io/snrd/x/svc"
"github.com/sonr-io/snrd/x/svc/keeper"
"github.com/sonr-io/snrd/x/svc/types"
2024-09-25 19:45:28 -04:00
)
var maccPerms = map[string][]string{
authtypes.FeeCollectorName: nil,
stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking},
stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
minttypes.ModuleName: {authtypes.Minter},
govtypes.ModuleName: {authtypes.Burner},
}
type testFixture struct {
suite.Suite
ctx sdk.Context
k keeper.Keeper
msgServer types.MsgServer
queryServer types.QueryServer
appModule *module.AppModule
accountkeeper authkeeper.AccountKeeper
bankkeeper bankkeeper.BaseKeeper
stakingKeeper *stakingkeeper.Keeper
mintkeeper mintkeeper.Keeper
addrs []sdk.AccAddress
govModAddr string
}
func SetupTest(t *testing.T) *testFixture {
t.Helper()
f := new(testFixture)
// Base setup
logger := log.NewTestLogger(t)
encCfg := moduletestutil.MakeTestEncodingConfig()
f.govModAddr = authtypes.NewModuleAddress(govtypes.ModuleName).String()
f.addrs = simtestutil.CreateIncrementalAccounts(3)
2024-11-26 22:05:50 -05:00
keys := storetypes.NewKVStoreKeys(authtypes.ModuleName, banktypes.ModuleName, stakingtypes.ModuleName, minttypes.ModuleName, types.ModuleName)
f.ctx = sdk.NewContext(integration.CreateMultiStore(keys, logger), cmtproto.Header{}, false, logger)
2024-09-25 19:45:28 -04:00
// Register SDK modules.
2024-11-26 22:05:50 -05:00
registerBaseSDKModules(logger, f, encCfg, keys)
2024-09-25 19:45:28 -04:00
// Setup Keeper.
2024-11-26 22:05:50 -05:00
f.k = keeper.NewKeeper(encCfg.Codec, runtime.NewKVStoreService(keys[types.ModuleName]), logger, f.govModAddr)
2024-09-25 19:45:28 -04:00
f.msgServer = keeper.NewMsgServerImpl(f.k)
f.queryServer = keeper.NewQuerier(f.k)
2024-11-26 22:05:50 -05:00
f.appModule = module.NewAppModule(encCfg.Codec, f.k)
2024-09-25 19:45:28 -04:00
return f
}
func registerModuleInterfaces(encCfg moduletestutil.TestEncodingConfig) {
authtypes.RegisterInterfaces(encCfg.InterfaceRegistry)
stakingtypes.RegisterInterfaces(encCfg.InterfaceRegistry)
2024-11-26 22:05:50 -05:00
banktypes.RegisterInterfaces(encCfg.InterfaceRegistry)
minttypes.RegisterInterfaces(encCfg.InterfaceRegistry)
2024-09-25 19:45:28 -04:00
types.RegisterInterfaces(encCfg.InterfaceRegistry)
}
func registerBaseSDKModules(
2024-11-26 22:05:50 -05:00
logger log.Logger,
2024-09-25 19:45:28 -04:00
f *testFixture,
encCfg moduletestutil.TestEncodingConfig,
2024-11-26 22:05:50 -05:00
keys map[string]*storetypes.KVStoreKey,
2024-09-25 19:45:28 -04:00
) {
registerModuleInterfaces(encCfg)
// Auth Keeper.
f.accountkeeper = authkeeper.NewAccountKeeper(
2024-11-26 22:05:50 -05:00
encCfg.Codec, runtime.NewKVStoreService(keys[authtypes.StoreKey]),
2024-09-25 19:45:28 -04:00
authtypes.ProtoBaseAccount,
maccPerms,
authcodec.NewBech32Codec(sdk.Bech32MainPrefix), sdk.Bech32MainPrefix,
f.govModAddr,
)
// Bank Keeper.
f.bankkeeper = bankkeeper.NewBaseKeeper(
2024-11-26 22:05:50 -05:00
encCfg.Codec, runtime.NewKVStoreService(keys[banktypes.StoreKey]),
2024-09-25 19:45:28 -04:00
f.accountkeeper,
nil,
f.govModAddr, logger,
)
// Staking Keeper.
f.stakingKeeper = stakingkeeper.NewKeeper(
2024-11-26 22:05:50 -05:00
encCfg.Codec, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]),
2024-09-25 19:45:28 -04:00
f.accountkeeper, f.bankkeeper, f.govModAddr,
authcodec.NewBech32Codec(sdk.Bech32PrefixValAddr),
authcodec.NewBech32Codec(sdk.Bech32PrefixConsAddr),
)
// Mint Keeper.
f.mintkeeper = mintkeeper.NewKeeper(
2024-11-26 22:05:50 -05:00
encCfg.Codec, runtime.NewKVStoreService(keys[minttypes.StoreKey]),
2024-09-25 19:45:28 -04:00
f.stakingKeeper, f.accountkeeper, f.bankkeeper,
authtypes.FeeCollectorName, f.govModAddr,
)
}