package simulation_test import ( "math/rand" "testing" "github.com/stretchr/testify/require" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" "github.com/cosmos/cosmos-sdk/simapp" simappparams "github.com/cosmos/cosmos-sdk/simapp/params" sdk "github.com/cosmos/cosmos-sdk/types" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" "github.com/cosmos/cosmos-sdk/x/distribution/simulation" ) func TestProposalContents(t *testing.T) { app := simapp.Setup(false) ctx := app.BaseApp.NewContext(false, tmproto.Header{}) // initialize parameters s := rand.NewSource(1) r := rand.New(s) accounts := simtypes.RandomAccounts(r, 3) // execute ProposalContents function weightedProposalContent := simulation.ProposalContents(app.DistrKeeper) require.Len(t, weightedProposalContent, 1) w0 := weightedProposalContent[0] // tests w0 interface: require.Equal(t, simulation.OpWeightSubmitCommunitySpendProposal, w0.AppParamsKey()) require.Equal(t, simappparams.DefaultWeightTextProposal, w0.DefaultWeight()) amount := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1)), sdk.NewCoin("atoken", sdk.NewInt(2))) feePool := app.DistrKeeper.GetFeePool(ctx) feePool.CommunityPool = sdk.NewDecCoinsFromCoins(amount...) app.DistrKeeper.SetFeePool(ctx, feePool) content := w0.ContentSimulatorFn()(r, ctx, accounts) require.Equal(t, "sTxPjfweXhSUkMhPjMaxKlMIJMOXcnQfyzeOcbWwNbeHVIkPZBSpYuLyYggwexjxusrBqDOTtGTOWeLrQKjLxzIivHSlcxgdXhhu", content.GetDescription()) require.Equal(t, "xKGLwQvuyN", content.GetTitle()) require.Equal(t, "distribution", content.ProposalRoute()) require.Equal(t, "CommunityPoolSpend", content.ProposalType()) }