github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/types/proposal_test.go (about) 1 package types 2 3 import ( 4 "testing" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 "github.com/fibonacci-chain/fbc/libs/tendermint/crypto/ed25519" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestNewCommunityPoolSpendProposal(t *testing.T) { 12 title := "Withdraw coins" 13 description := "Want to get some coins as reward" 14 recipient := sdk.AccAddress(ed25519.GenPrivKey().PubKey().Address()) 15 amount := sdk.NewCoin(sdk.DefaultBondDenom, sdk.OneInt()) 16 proposal := NewCommunityPoolSpendProposal(title, description, recipient, sdk.NewCoins(amount)) 17 18 require.Equal(t, title, proposal.GetTitle()) 19 require.Equal(t, description, proposal.GetDescription()) 20 require.Equal(t, RouterKey, proposal.ProposalRoute()) 21 require.Equal(t, ProposalTypeCommunityPoolSpend, proposal.ProposalType()) 22 require.Nil(t, proposal.ValidateBasic()) 23 require.NotPanics(t, func() { 24 _ = proposal.String() 25 }) 26 27 proposal.Title = "" 28 require.Error(t, proposal.ValidateBasic()) 29 proposal.Title = title 30 proposal.Amount = sdk.SysCoins{sdk.SysCoin{Denom: "UNKNOWN", Amount: sdk.OneDec()}} 31 require.Error(t, proposal.ValidateBasic()) 32 proposal.Amount = sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.OneInt())) 33 proposal.Recipient = nil 34 require.Error(t, proposal.ValidateBasic()) 35 }