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 }