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

     1  package gov
     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/gov/keeper"
    10  	"github.com/fibonacci-chain/fbc/x/gov/types"
    11  )
    12  
    13  func TestModuleAccountInvariant(t *testing.T) {
    14  	ctx, _, gk, _, crisisKeeper := keeper.CreateTestInput(t, false, 1000)
    15  	govHandler := NewHandler(gk)
    16  
    17  	initialDeposit := sdk.SysCoins{sdk.NewInt64DecCoin(sdk.DefaultBondDenom, 50)}
    18  	content := types.NewTextProposal("Test", "description")
    19  	newProposalMsg := NewMsgSubmitProposal(content, initialDeposit, keeper.Addrs[0])
    20  	res, err := govHandler(ctx, newProposalMsg)
    21  	require.Nil(t, err)
    22  	var proposalID uint64
    23  	gk.Cdc().MustUnmarshalBinaryLengthPrefixed(res.Data, &proposalID)
    24  
    25  	newDepositMsg := NewMsgDeposit(keeper.Addrs[0], proposalID,
    26  		sdk.SysCoins{sdk.NewInt64DecCoin(sdk.DefaultBondDenom, 100)})
    27  	res, err = govHandler(ctx, newDepositMsg)
    28  	require.Nil(t, err)
    29  
    30  	invariant := ModuleAccountInvariant(gk)
    31  	_, broken := invariant(ctx)
    32  	require.False(t, broken)
    33  
    34  	// todo: check diff after RegisterInvariants
    35  	RegisterInvariants(&crisisKeeper, gk)
    36  }