Some checks failed
CodeQL / Analyze (push) Waiting to run
golangci-lint / lint (push) Waiting to run
Tests / Code Coverage / build (amd64) (push) Waiting to run
Tests / Code Coverage / build (arm64) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[additional-args:-tags="test_e2e" name:e2e path:./e2e]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:08-wasm path:./modules/light-clients/08-wasm]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:ibc-go path:.]) (push) Waiting to run
Docker Build & Push Simapp (main) / docker-build (push) Has been cancelled
101 lines
3.1 KiB
Go
101 lines
3.1 KiB
Go
package simulation_test
|
|
|
|
import (
|
|
"math/rand"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
sdk "git.cw.tr/mukan-network/mukan-sdk/types"
|
|
"git.cw.tr/mukan-network/mukan-sdk/types/address"
|
|
simtypes "git.cw.tr/mukan-network/mukan-sdk/types/simulation"
|
|
|
|
cmtproto "git.cw.tr/mukan-network/mukan-consensus/proto/tendermint/types"
|
|
|
|
controllerkeeper "git.cw.tr/mukan-network/mukan-ibc/modules/apps/27-interchain-accounts/controller/keeper"
|
|
controllertypes "git.cw.tr/mukan-network/mukan-ibc/modules/apps/27-interchain-accounts/controller/types"
|
|
hostkeeper "git.cw.tr/mukan-network/mukan-ibc/modules/apps/27-interchain-accounts/host/keeper"
|
|
hosttypes "git.cw.tr/mukan-network/mukan-ibc/modules/apps/27-interchain-accounts/host/types"
|
|
"git.cw.tr/mukan-network/mukan-ibc/modules/apps/27-interchain-accounts/simulation"
|
|
)
|
|
|
|
func TestProposalMsgs(t *testing.T) {
|
|
// initialize parameters
|
|
s := rand.NewSource(1)
|
|
r := rand.New(s)
|
|
|
|
ctx := sdk.NewContext(nil, cmtproto.Header{}, true, nil)
|
|
accounts := simtypes.RandomAccounts(r, 3)
|
|
|
|
tests := []struct {
|
|
name string
|
|
controller *controllerkeeper.Keeper
|
|
host *hostkeeper.Keeper
|
|
expMsgs []sdk.Msg
|
|
}{
|
|
{
|
|
name: "host and controller keepers are both enabled",
|
|
controller: &controllerkeeper.Keeper{},
|
|
host: &hostkeeper.Keeper{},
|
|
expMsgs: []sdk.Msg{
|
|
hosttypes.NewMsgUpdateParams(
|
|
sdk.AccAddress(address.Module("gov")).String(),
|
|
hosttypes.NewParams(false, []string{hosttypes.AllowAllHostMsgs}),
|
|
),
|
|
controllertypes.NewMsgUpdateParams(
|
|
sdk.AccAddress(address.Module("gov")).String(),
|
|
controllertypes.NewParams(false),
|
|
),
|
|
},
|
|
},
|
|
{
|
|
name: "host and controller keepers are not enabled",
|
|
controller: nil,
|
|
host: nil,
|
|
},
|
|
{
|
|
name: "only controller keeper is enabled",
|
|
controller: &controllerkeeper.Keeper{},
|
|
expMsgs: []sdk.Msg{
|
|
controllertypes.NewMsgUpdateParams(
|
|
sdk.AccAddress(address.Module("gov")).String(),
|
|
controllertypes.NewParams(false),
|
|
),
|
|
},
|
|
},
|
|
{
|
|
name: "only host keeper is enabled",
|
|
host: &hostkeeper.Keeper{},
|
|
expMsgs: []sdk.Msg{
|
|
hosttypes.NewMsgUpdateParams(
|
|
sdk.AccAddress(address.Module("gov")).String(),
|
|
hosttypes.NewParams(false, []string{hosttypes.AllowAllHostMsgs}),
|
|
),
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
// execute ProposalMsgs function
|
|
weightedProposalMsgs := simulation.ProposalMsgs(tc.controller, tc.host)
|
|
require.Equal(t, len(tc.expMsgs), len(weightedProposalMsgs))
|
|
|
|
for idx, weightedMsg := range weightedProposalMsgs {
|
|
// tests weighted interface:
|
|
require.Equal(t, simulation.OpWeightMsgUpdateParams, weightedMsg.AppParamsKey())
|
|
require.Equal(t, simulation.DefaultWeightMsgUpdateParams, weightedMsg.DefaultWeight())
|
|
|
|
msg := weightedMsg.MsgSimulatorFn()(r, ctx, accounts)
|
|
|
|
if msgUpdateHostParams, ok := msg.(*hosttypes.MsgUpdateParams); ok {
|
|
require.Equal(t, tc.expMsgs[idx], msgUpdateHostParams)
|
|
} else {
|
|
msgUpdateControllerParams, ok := msg.(*controllertypes.MsgUpdateParams)
|
|
require.True(t, ok)
|
|
require.Equal(t, tc.expMsgs[idx], msgUpdateControllerParams)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|