github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/staking/client/cli/tx_test.go (about) 1 package cli 2 3 import ( 4 "testing" 5 6 tcmd "github.com/fibonacci-chain/fbc/libs/tendermint/cmd/tendermint/commands" 7 cfg "github.com/fibonacci-chain/fbc/libs/tendermint/config" 8 "github.com/fibonacci-chain/fbc/libs/tendermint/crypto" 9 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/log" 10 "github.com/spf13/viper" 11 "github.com/stretchr/testify/require" 12 13 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/server" 14 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 15 ) 16 17 func TestPrepareFlagsForTxCreateValidator(t *testing.T) { 18 defer server.SetupViper(t)() 19 config, err := tcmd.ParseConfig() 20 require.Nil(t, err) 21 logger := log.NewNopLogger() 22 ctx := server.NewContext(config, logger) 23 24 valPubKey, _ := sdk.GetPubKeyFromBech32(sdk.Bech32PubKeyTypeConsPub, "cosmosvalconspub1zcjduepq7jsrkl9fgqk0wj3ahmfr8pgxj6vakj2wzn656s8pehh0zhv2w5as5gd80a") 25 26 type args struct { 27 config *cfg.Config 28 nodeID string 29 chainID string 30 valPubKey crypto.PubKey 31 } 32 33 type extraParams struct { 34 amount string 35 commissionRate string 36 commissionMaxRate string 37 commissionMaxChangeRate string 38 minSelfDelegation string 39 } 40 41 type testcase struct { 42 name string 43 args args 44 } 45 46 runTest := func(t *testing.T, tt testcase, params extraParams) { 47 PrepareFlagsForTxCreateValidator(tt.args.config, tt.args.nodeID, 48 tt.args.chainID, tt.args.valPubKey) 49 50 require.Equal(t, params.amount, viper.GetString(FlagAmount)) 51 require.Equal(t, params.commissionRate, viper.GetString(FlagCommissionRate)) 52 require.Equal(t, params.commissionMaxRate, viper.GetString(FlagCommissionMaxRate)) 53 require.Equal(t, params.commissionMaxChangeRate, viper.GetString(FlagCommissionMaxChangeRate)) 54 require.Equal(t, params.minSelfDelegation, viper.GetString(FlagMinSelfDelegation)) 55 } 56 57 tests := []testcase{ 58 {"No parameters", args{ctx.Config, "X", "chainId", valPubKey}}, 59 } 60 61 defaultParams := extraParams{ 62 defaultAmount, 63 defaultCommissionRate, 64 defaultCommissionMaxRate, 65 defaultCommissionMaxChangeRate, 66 defaultMinSelfDelegation, 67 } 68 for _, tt := range tests { 69 tt := tt 70 t.Run(tt.name, func(t *testing.T) { 71 t.Run(tt.name, func(t *testing.T) { runTest(t, tt, defaultParams) }) 72 }) 73 } 74 75 // Override default params 76 params := extraParams{"5stake", "1.0", "1.0", "1.0", "1.0"} 77 viper.Set(FlagAmount, params.amount) 78 viper.Set(FlagCommissionRate, params.commissionRate) 79 viper.Set(FlagCommissionMaxRate, params.commissionMaxRate) 80 viper.Set(FlagCommissionMaxChangeRate, params.commissionMaxChangeRate) 81 viper.Set(FlagMinSelfDelegation, params.minSelfDelegation) 82 for _, tt := range tests { 83 tt := tt 84 t.Run(tt.name, func(t *testing.T) { runTest(t, tt, params) }) 85 } 86 }