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  }