github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/gov/keeper/proposal_test.go (about)

     1  package keeper
     2  
     3  import (
     4  	"testing"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	//"github.com/fibonacci-chain/fbc/x/common"
    10  	//dexTypes "github.com/fibonacci-chain/fbc/x/dex/types"
    11  	"github.com/fibonacci-chain/fbc/x/gov/types"
    12  )
    13  
    14  //func TestKeeper_SubmitProposal(t *testing.T) {
    15  //	ctx, _, keeper, _, _ := CreateTestInput(t, false, 1000)
    16  //
    17  //	// not registered router
    18  //	content := dexTypes.NewDexListProposal("Test", "", Addrs[0], "btc-123",
    19  //		common.NativeToken, sdk.NewDec(1000), 0, 4, 4,
    20  //		sdk.MustNewDecFromStr("0.0001"))
    21  //	proposal, err := keeper.SubmitProposal(ctx, content)
    22  //	require.NotNil(t, err)
    23  //	proposalID := proposal.ProposalID
    24  //	fmt.Println(proposalID)
    25  //}
    26  
    27  func TestKeeper_GetProposalID(t *testing.T) {
    28  	ctx, _, keeper, _, _ := CreateTestInput(t, false, 1000)
    29  
    30  	store := ctx.KVStore(keeper.storeKey)
    31  	store.Delete(types.ProposalIDKey)
    32  	proposalID, err := keeper.GetProposalID(ctx)
    33  	require.NotNil(t, err)
    34  	require.Equal(t, uint64(0), proposalID)
    35  }
    36  
    37  func TestKeeper_GetProposalsFiltered(t *testing.T) {
    38  	ctx, _, keeper, _, _ := CreateTestInput(t, false, 1000)
    39  
    40  	// no proposal
    41  	proposals := keeper.GetProposalsFiltered(ctx, nil, nil,
    42  		types.StatusDepositPeriod, 0)
    43  	require.Equal(t, 0, len(proposals))
    44  
    45  	content := types.NewTextProposal("Test", "description")
    46  	proposal, err := keeper.SubmitProposal(ctx, content)
    47  	require.Nil(t, err)
    48  	proposalID := proposal.ProposalID
    49  
    50  	// get proposals by status
    51  	proposals = keeper.GetProposalsFiltered(ctx, nil, nil,
    52  		types.StatusDepositPeriod, 0)
    53  	require.Equal(t, 1, len(proposals))
    54  
    55  	err = keeper.AddDeposit(ctx, proposalID, Addrs[0],
    56  		sdk.SysCoins{sdk.NewInt64DecCoin(sdk.DefaultBondDenom, 100)}, "")
    57  	require.Nil(t, err)
    58  
    59  	proposals = keeper.GetProposalsFiltered(ctx, nil, nil,
    60  		types.StatusDepositPeriod, 0)
    61  	require.Equal(t, 0, len(proposals))
    62  
    63  	err, voteFee := keeper.AddVote(ctx, proposalID, Addrs[1], types.OptionYes)
    64  	require.Nil(t, err)
    65  	require.Equal(t, "", voteFee)
    66  
    67  	proposals = keeper.GetProposalsFiltered(ctx, Addrs[1], nil, types.StatusNil, 0)
    68  	require.Equal(t, 1, len(proposals))
    69  
    70  	proposals = keeper.GetProposalsFiltered(ctx, nil, Addrs[0], types.StatusNil, 0)
    71  	require.Equal(t, 1, len(proposals))
    72  
    73  	proposals = keeper.GetProposalsFiltered(ctx, Addrs[1], Addrs[0], types.StatusNil, 0)
    74  	require.Equal(t, 1, len(proposals))
    75  }
    76  
    77  func TestKeeper_DeleteProposal(t *testing.T) {
    78  	ctx, _, keeper, _, _ := CreateTestInput(t, false, 1000)
    79  
    80  	require.Panics(t, func() { keeper.DeleteProposal(ctx, 1) })
    81  
    82  	content := types.NewTextProposal("Test", "description")
    83  	proposal, err := keeper.SubmitProposal(ctx, content)
    84  	require.Nil(t, err)
    85  	proposalID := proposal.ProposalID
    86  	keeper.DeleteProposal(ctx, proposalID)
    87  	proposal, ok := keeper.GetProposal(ctx, proposalID)
    88  	require.False(t, ok)
    89  	require.Equal(t, types.Proposal{}, proposal)
    90  }
    91  
    92  func TestKeeper_GetProposals(t *testing.T) {
    93  	ctx, _, keeper, _, _ := CreateTestInput(t, false, 1000)
    94  
    95  	content := types.NewTextProposal("Test", "description")
    96  	_, err := keeper.SubmitProposal(ctx, content)
    97  	require.Nil(t, err)
    98  
    99  	content = types.NewTextProposal("Test", "description")
   100  	_, err = keeper.SubmitProposal(ctx, content)
   101  	require.Nil(t, err)
   102  
   103  	proposals := keeper.GetProposals(ctx)
   104  	require.Equal(t, 2, len(proposals))
   105  }