Skip to content

Commit

Permalink
Fix unit tests (#66)
Browse files Browse the repository at this point in the history
  • Loading branch information
agouin authored Jan 18, 2023
1 parent eb375f0 commit b6697f3
Show file tree
Hide file tree
Showing 21 changed files with 254 additions and 63 deletions.
27 changes: 27 additions & 0 deletions testutil/keeper/bankkeeper.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package keeper

import (
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
)

type MockBankKeeper struct{}

func (MockBankKeeper) SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins {
return nil
}
func (MockBankKeeper) MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error {
return nil
}
func (MockBankKeeper) BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error {
return nil
}
func (MockBankKeeper) SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error {
return nil
}
func (MockBankKeeper) SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error {
return nil
}
func (MockBankKeeper) GetDenomMetaData(ctx sdk.Context, denom string) (banktypes.Metadata, bool) {
return banktypes.Metadata{}, true
}
2 changes: 1 addition & 1 deletion testutil/keeper/tokenfactory.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func TokenfactoryKeeper(t testing.TB) (*keeper.Keeper, sdk.Context) {
cdc,
storeKey,
paramsSubspace,
nil,
MockBankKeeper{},
)

ctx := sdk.NewContext(stateStore, tmproto.Header{}, false, log.NewNopLogger())
Expand Down
19 changes: 18 additions & 1 deletion testutil/network/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,16 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
genutil "github.com/cosmos/cosmos-sdk/x/genutil"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
ccvconsumertypes "github.com/cosmos/interchain-security/x/ccv/consumer/types"
"github.com/strangelove-ventures/noble/app"
"github.com/strangelove-ventures/noble/cmd"
"github.com/strangelove-ventures/noble/testutil"
"github.com/strangelove-ventures/noble/testutil/sample"
paramauthoritytypes "github.com/strangelove-ventures/paramauthority/x/params/types/proposal"
paramauthorityupgradetypes "github.com/strangelove-ventures/paramauthority/x/upgrade/types"
types1 "github.com/tendermint/tendermint/abci/types"
tmtypes "github.com/tendermint/tendermint/types"
)
Expand Down Expand Up @@ -62,7 +67,7 @@ func DefaultConfig() network.Config {
app.ModuleBasics[stakingtypes.ModuleName] = staking.AppModuleBasic{}

encoding := cmd.MakeEncodingConfig(app.ModuleBasics)
return network.Config{
cfg := network.Config{
Codec: encoding.Marshaler,
TxConfig: encoding.TxConfig,
LegacyAmino: encoding.Amino,
Expand Down Expand Up @@ -98,6 +103,18 @@ func DefaultConfig() network.Config {
SigningAlgo: string(hd.Secp256k1Type),
KeyringOptions: []keyring.Option{},
}

// Authority needs to be present to pass genesis validation
params := paramauthoritytypes.DefaultGenesis()
params.Params.Authority = sample.AccAddress()
cfg.GenesisState[paramstypes.ModuleName] = encoding.Marshaler.MustMarshalJSON(params)

// Authority needs to be present to pass genesis validation
upgrade := paramauthorityupgradetypes.DefaultGenesis()
upgrade.Params.Authority = sample.AccAddress()
cfg.GenesisState[upgradetypes.ModuleName] = encoding.Marshaler.MustMarshalJSON(upgrade)

return cfg
}

func modifyConsumerGenesis(val network.Validator) error {
Expand Down
4 changes: 2 additions & 2 deletions x/tokenfactory/client/cli/query_minter_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func networkWithMinterControllerObjects(t *testing.T, n int) (*network.Network,

for i := 0; i < n; i++ {
minterController := types.MinterController{
Minter: strconv.Itoa(i),
Controller: strconv.Itoa(i),
}
nullify.Fill(&minterController)
state.MinterControllerList = append(state.MinterControllerList, minterController)
Expand Down Expand Up @@ -57,7 +57,7 @@ func TestShowMinterController(t *testing.T) {
}{
{
desc: "found",
idMinterAddress: objs[0].Minter,
idMinterAddress: objs[0].Controller,

args: common,
obj: objs[0],
Expand Down
22 changes: 18 additions & 4 deletions x/tokenfactory/client/cli/query_minting_denom_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"testing"

clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/stretchr/testify/require"
tmcli "github.com/tendermint/tendermint/libs/cli"
"google.golang.org/grpc/status"
Expand All @@ -21,12 +22,25 @@ func networkWithMintingDenomObjects(t *testing.T) (*network.Network, types.Minti
state := types.GenesisState{}
require.NoError(t, cfg.Codec.UnmarshalJSON(cfg.GenesisState[types.ModuleName], &state))

mintingDenom := &types.MintingDenom{}
nullify.Fill(&mintingDenom)
state.MintingDenom = mintingDenom
buf, err := cfg.Codec.MarshalJSON(&state)
testDenom := "test"

state.MintingDenom = &types.MintingDenom{
Denom: testDenom,
}

bankState := banktypes.DefaultGenesisState()
bankState.DenomMetadata = []banktypes.Metadata{{
Base: testDenom,
}}

buf, err := cfg.Codec.MarshalJSON(bankState)
require.NoError(t, err)
cfg.GenesisState[banktypes.ModuleName] = buf

buf, err = cfg.Codec.MarshalJSON(&state)
require.NoError(t, err)
cfg.GenesisState[types.ModuleName] = buf

return network.New(t, cfg), *state.MintingDenom
}

Expand Down
4 changes: 2 additions & 2 deletions x/tokenfactory/keeper/grpc_query_minter_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ func TestMinterControllerQuerySingle(t *testing.T) {
{
desc: "First",
request: &types.QueryGetMinterControllerRequest{
ControllerAddress: msgs[0].Minter,
ControllerAddress: msgs[0].Controller,
},
response: &types.QueryGetMinterControllerResponse{MinterController: msgs[0]},
},
{
desc: "Second",
request: &types.QueryGetMinterControllerRequest{
ControllerAddress: msgs[1].Minter,
ControllerAddress: msgs[1].Controller,
},
response: &types.QueryGetMinterControllerResponse{MinterController: msgs[1]},
},
Expand Down
4 changes: 2 additions & 2 deletions x/tokenfactory/keeper/minter_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ var _ = strconv.IntSize
func createNMinterController(keeper *keeper.Keeper, ctx sdk.Context, n int) []types.MinterController {
items := make([]types.MinterController, n)
for i := range items {
items[i].Minter = strconv.Itoa(i)
items[i].Controller = strconv.Itoa(i)

keeper.SetMinterController(ctx, items[i])
}
Expand All @@ -31,7 +31,7 @@ func TestMinterControllerGet(t *testing.T) {
items := createNMinterController(keeper, ctx, 10)
for _, item := range items {
rst, found := keeper.GetMinterController(ctx,
item.Minter,
item.Controller,
)
require.True(t, found)
require.Equal(t,
Expand Down
4 changes: 3 additions & 1 deletion x/tokenfactory/keeper/minting_denom_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ import (
)

func createTestMintingDenom(keeper *keeper.Keeper, ctx sdk.Context) types.MintingDenom {
item := types.MintingDenom{}
item := types.MintingDenom{
Denom: "abcd",
}
keeper.SetMintingDenom(ctx, item)
return item
}
Expand Down
3 changes: 1 addition & 2 deletions x/tokenfactory/keeper/owner.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package keeper
import (
"github.com/strangelove-ventures/noble/x/tokenfactory/types"

"github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
)

Expand All @@ -29,6 +28,6 @@ func (k Keeper) GetOwner(ctx sdk.Context) (val types.Owner, found bool) {

// RemoveOwner removes owner from the store
func (k Keeper) RemoveOwner(ctx sdk.Context) {
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.OwnerKey))
store := ctx.KVStore(k.storeKey)
store.Delete(types.KeyPrefix(types.OwnerKey))
}
3 changes: 1 addition & 2 deletions x/tokenfactory/keeper/pauser.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package keeper
import (
"github.com/strangelove-ventures/noble/x/tokenfactory/types"

"github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
)

Expand All @@ -29,6 +28,6 @@ func (k Keeper) GetPauser(ctx sdk.Context) (val types.Pauser, found bool) {

// RemovePauser removes pauser from the store
func (k Keeper) RemovePauser(ctx sdk.Context) {
store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PauserKey))
store := ctx.KVStore(k.storeKey)
store.Delete(types.KeyPrefix(types.PauserKey))
}
19 changes: 15 additions & 4 deletions x/tokenfactory/types/message_blacklist_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,27 @@ func TestMsgBlacklist_ValidateBasic(t *testing.T) {
msg MsgBlacklist
err error
}{
{
name: "invalid from",
msg: MsgBlacklist{
From: "invalid_address",
Address: sample.AccAddress(),
},
err: sdkerrors.ErrInvalidAddress,
},
{
name: "invalid address",
msg: MsgBlacklist{
From: "invalid_address",
From: sample.AccAddress(),
Address: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
},
{
name: "valid address and from",
msg: MsgBlacklist{
From: sample.AccAddress(),
From: sample.AccAddress(),
Address: sample.AccAddress(),
},
},
}
Expand Down
33 changes: 28 additions & 5 deletions x/tokenfactory/types/message_configure_minter_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,38 @@ func TestMsgConfigureMinterController_ValidateBasic(t *testing.T) {
err error
}{
{
name: "invalid address",
name: "invalid from",
msg: MsgConfigureMinterController{
From: "invalid_address",
From: "invalid_address",
Controller: sample.AccAddress(),
Minter: sample.AccAddress(),
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
},
{
name: "invalid controller",
msg: MsgConfigureMinterController{
From: sample.AccAddress(),
Controller: "invalid_address",
Minter: sample.AccAddress(),
},
err: sdkerrors.ErrInvalidAddress,
},
{
name: "invalid minter",
msg: MsgConfigureMinterController{
From: sample.AccAddress(),
Controller: sample.AccAddress(),
Minter: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
},
{
name: "valid address, minter, and controller",
msg: MsgConfigureMinterController{
From: sample.AccAddress(),
From: sample.AccAddress(),
Controller: sample.AccAddress(),
Minter: sample.AccAddress(),
},
},
}
Expand Down
19 changes: 15 additions & 4 deletions x/tokenfactory/types/message_configure_minter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,27 @@ func TestMsgConfigureMinter_ValidateBasic(t *testing.T) {
msg MsgConfigureMinter
err error
}{
{
name: "invalid from",
msg: MsgConfigureMinter{
From: "invalid_address",
Address: sample.AccAddress(),
},
err: sdkerrors.ErrInvalidAddress,
},
{
name: "invalid address",
msg: MsgConfigureMinter{
From: "invalid_address",
From: sample.AccAddress(),
Address: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
},
{
name: "valid address and from",
msg: MsgConfigureMinter{
From: sample.AccAddress(),
From: sample.AccAddress(),
Address: sample.AccAddress(),
},
},
}
Expand Down
19 changes: 15 additions & 4 deletions x/tokenfactory/types/message_mint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,27 @@ func TestMsgMint_ValidateBasic(t *testing.T) {
msg MsgMint
err error
}{
{
name: "invalid from",
msg: MsgMint{
From: "invalid_address",
Address: sample.AccAddress(),
},
err: sdkerrors.ErrInvalidAddress,
},
{
name: "invalid address",
msg: MsgMint{
From: "invalid_address",
From: sample.AccAddress(),
Address: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
},
{
name: "valid address and from",
msg: MsgMint{
From: sample.AccAddress(),
From: sample.AccAddress(),
Address: sample.AccAddress(),
},
},
}
Expand Down
21 changes: 16 additions & 5 deletions x/tokenfactory/types/message_remove_minter_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,26 @@ func TestMsgRemoveMinterController_ValidateBasic(t *testing.T) {
err error
}{
{
name: "invalid address",
name: "invalid from",
msg: MsgRemoveMinterController{
From: "invalid_address",
From: "invalid_address",
Controller: sample.AccAddress(),
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
},
{
name: "invalid controller",
msg: MsgRemoveMinterController{
From: sample.AccAddress(),
Controller: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
},
{
name: "valid controller and from",
msg: MsgRemoveMinterController{
From: sample.AccAddress(),
From: sample.AccAddress(),
Controller: sample.AccAddress(),
},
},
}
Expand Down
Loading

0 comments on commit b6697f3

Please sign in to comment.