github.com/Finschia/finschia-sdk@v0.48.1/x/gov/keeper/keeper_test.go (about) 1 package keeper_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 "github.com/stretchr/testify/suite" 8 tmproto "github.com/tendermint/tendermint/proto/tendermint/types" 9 10 "github.com/Finschia/finschia-sdk/baseapp" 11 "github.com/Finschia/finschia-sdk/simapp" 12 sdk "github.com/Finschia/finschia-sdk/types" 13 "github.com/Finschia/finschia-sdk/x/gov/types" 14 ) 15 16 type KeeperTestSuite struct { 17 suite.Suite 18 19 app *simapp.SimApp 20 ctx sdk.Context 21 queryClient types.QueryClient 22 addrs []sdk.AccAddress 23 } 24 25 func (suite *KeeperTestSuite) SetupTest() { 26 app := simapp.Setup(false) 27 ctx := app.BaseApp.NewContext(false, tmproto.Header{}) 28 29 queryHelper := baseapp.NewQueryServerTestHelper(ctx, app.InterfaceRegistry()) 30 types.RegisterQueryServer(queryHelper, app.GovKeeper) 31 queryClient := types.NewQueryClient(queryHelper) 32 33 suite.app = app 34 suite.ctx = ctx 35 suite.queryClient = queryClient 36 suite.addrs = simapp.AddTestAddrsIncremental(app, ctx, 2, sdk.NewInt(30000000)) 37 } 38 39 func TestIncrementProposalNumber(t *testing.T) { 40 app := simapp.Setup(false) 41 ctx := app.BaseApp.NewContext(false, tmproto.Header{}) 42 43 tp := TestProposal 44 _, err := app.GovKeeper.SubmitProposal(ctx, tp) 45 require.NoError(t, err) 46 _, err = app.GovKeeper.SubmitProposal(ctx, tp) 47 require.NoError(t, err) 48 _, err = app.GovKeeper.SubmitProposal(ctx, tp) 49 require.NoError(t, err) 50 _, err = app.GovKeeper.SubmitProposal(ctx, tp) 51 require.NoError(t, err) 52 _, err = app.GovKeeper.SubmitProposal(ctx, tp) 53 require.NoError(t, err) 54 proposal6, err := app.GovKeeper.SubmitProposal(ctx, tp) 55 require.NoError(t, err) 56 57 require.Equal(t, uint64(6), proposal6.ProposalId) 58 } 59 60 func TestProposalQueues(t *testing.T) { 61 app := simapp.Setup(false) 62 ctx := app.BaseApp.NewContext(false, tmproto.Header{}) 63 64 // create test proposals 65 tp := TestProposal 66 proposal, err := app.GovKeeper.SubmitProposal(ctx, tp) 67 require.NoError(t, err) 68 69 inactiveIterator := app.GovKeeper.InactiveProposalQueueIterator(ctx, proposal.DepositEndTime) 70 require.True(t, inactiveIterator.Valid()) 71 72 proposalID := types.GetProposalIDFromBytes(inactiveIterator.Value()) 73 require.Equal(t, proposalID, proposal.ProposalId) 74 inactiveIterator.Close() 75 76 app.GovKeeper.ActivateVotingPeriod(ctx, proposal) 77 78 proposal, ok := app.GovKeeper.GetProposal(ctx, proposal.ProposalId) 79 require.True(t, ok) 80 81 activeIterator := app.GovKeeper.ActiveProposalQueueIterator(ctx, proposal.VotingEndTime) 82 require.True(t, activeIterator.Valid()) 83 84 proposalID, _ = types.SplitActiveProposalQueueKey(activeIterator.Key()) 85 require.Equal(t, proposalID, proposal.ProposalId) 86 87 activeIterator.Close() 88 } 89 90 func TestKeeperTestSuite(t *testing.T) { 91 suite.Run(t, new(KeeperTestSuite)) 92 }