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 }