github.com/Finschia/finschia-sdk@v0.48.1/x/distribution/simulation/proposals_test.go (about)

     1  package simulation_test
     2  
     3  import (
     4  	"math/rand"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  	tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
     9  
    10  	"github.com/Finschia/finschia-sdk/simapp"
    11  	simappparams "github.com/Finschia/finschia-sdk/simapp/params"
    12  	sdk "github.com/Finschia/finschia-sdk/types"
    13  	simtypes "github.com/Finschia/finschia-sdk/types/simulation"
    14  	"github.com/Finschia/finschia-sdk/x/distribution/simulation"
    15  )
    16  
    17  func TestProposalContents(t *testing.T) {
    18  	app := simapp.Setup(false)
    19  	ctx := app.BaseApp.NewContext(false, tmproto.Header{})
    20  
    21  	// initialize parameters
    22  	s := rand.NewSource(1)
    23  	r := rand.New(s)
    24  
    25  	accounts := simtypes.RandomAccounts(r, 3)
    26  
    27  	// execute ProposalContents function
    28  	weightedProposalContent := simulation.ProposalContents(app.DistrKeeper)
    29  	require.Len(t, weightedProposalContent, 1)
    30  
    31  	w0 := weightedProposalContent[0]
    32  
    33  	// tests w0 interface:
    34  	require.Equal(t, simulation.OpWeightSubmitCommunitySpendProposal, w0.AppParamsKey())
    35  	require.Equal(t, simappparams.DefaultWeightTextProposal, w0.DefaultWeight())
    36  
    37  	amount := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1)), sdk.NewCoin("atoken", sdk.NewInt(2)))
    38  
    39  	feePool := app.DistrKeeper.GetFeePool(ctx)
    40  	feePool.CommunityPool = sdk.NewDecCoinsFromCoins(amount...)
    41  	app.DistrKeeper.SetFeePool(ctx, feePool)
    42  
    43  	content := w0.ContentSimulatorFn()(r, ctx, accounts)
    44  
    45  	require.Equal(t, "sTxPjfweXhSUkMhPjMaxKlMIJMOXcnQfyzeOcbWwNbeHVIkPZBSpYuLyYggwexjxusrBqDOTtGTOWeLrQKjLxzIivHSlcxgdXhhu", content.GetDescription())
    46  	require.Equal(t, "xKGLwQvuyN", content.GetTitle())
    47  	require.Equal(t, "distribution", content.ProposalRoute())
    48  	require.Equal(t, "CommunityPoolSpend", content.ProposalType())
    49  }