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

     1  package feesplit_test
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/fibonacci-chain/fbc/app"
     9  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
    10  	abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types"
    11  	"github.com/fibonacci-chain/fbc/x/feesplit"
    12  	"github.com/fibonacci-chain/fbc/x/feesplit/types"
    13  	"github.com/stretchr/testify/suite"
    14  )
    15  
    16  type GenesisTestSuite struct {
    17  	suite.Suite
    18  
    19  	ctx     sdk.Context
    20  	app     *app.FBChainApp
    21  	genesis types.GenesisState
    22  }
    23  
    24  func (suite *GenesisTestSuite) SetupTest() {
    25  	checkTx := false
    26  
    27  	suite.app = app.Setup(false)
    28  	suite.ctx = suite.app.BaseApp.NewContext(checkTx, abci.Header{Height: 1, ChainID: "ethermint-3", Time: time.Now().UTC()})
    29  	suite.app.FeeSplitKeeper.SetParams(suite.ctx, types.DefaultParams())
    30  	suite.genesis = types.DefaultGenesisState()
    31  }
    32  
    33  func TestGenesisTestSuite(t *testing.T) {
    34  	suite.Run(t, new(GenesisTestSuite))
    35  }
    36  
    37  func (suite *GenesisTestSuite) TestFeeSplitInitGenesis() {
    38  	testCases := []struct {
    39  		name     string
    40  		genesis  types.GenesisState
    41  		expPanic bool
    42  	}{
    43  		{
    44  			"default genesis",
    45  			suite.genesis,
    46  			false,
    47  		},
    48  		{
    49  			"custom genesis - feesplit disabled",
    50  			types.GenesisState{
    51  				Params: types.Params{
    52  					EnableFeeSplit:           false,
    53  					DeveloperShares:          types.DefaultDeveloperShares,
    54  					AddrDerivationCostCreate: types.DefaultAddrDerivationCostCreate,
    55  				},
    56  			},
    57  			false,
    58  		},
    59  	}
    60  
    61  	for _, tc := range testCases {
    62  		suite.Run(fmt.Sprintf("Case %s", tc.name), func() {
    63  			suite.SetupTest() // reset
    64  
    65  			if tc.expPanic {
    66  				suite.Require().Panics(func() {
    67  					feesplit.InitGenesis(suite.ctx, suite.app.FeeSplitKeeper, tc.genesis)
    68  				})
    69  			} else {
    70  				suite.Require().NotPanics(func() {
    71  					feesplit.InitGenesis(suite.ctx, suite.app.FeeSplitKeeper, tc.genesis)
    72  				})
    73  
    74  				params := suite.app.FeeSplitKeeper.GetParams(suite.ctx)
    75  				suite.Require().Equal(tc.genesis.Params, params)
    76  			}
    77  		})
    78  	}
    79  }
    80  
    81  func (suite *GenesisTestSuite) TestFeeSplitExportGenesis() {
    82  	feesplit.InitGenesis(suite.ctx, suite.app.FeeSplitKeeper, suite.genesis)
    83  
    84  	genesisExported := feesplit.ExportGenesis(suite.ctx, suite.app.FeeSplitKeeper)
    85  	suite.Require().Equal(genesisExported.Params, suite.genesis.Params)
    86  }