mukan-ibc/modules/apps/27-interchain-accounts/simulation/proposals_test.go
Mukan Erkin Törük 88dd97a9f8
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
refactor: replace all github.com upstream refs with git.cw.tr/mukan-network
2026-05-11 03:36:22 +03:00

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)
}
}
})
}
}