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  }