github.com/Finschia/finschia-sdk@v0.48.1/x/mint/client/testutil/suite.go (about) 1 package testutil 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/stretchr/testify/suite" 8 9 ostcli "github.com/Finschia/ostracon/libs/cli" 10 11 "github.com/Finschia/finschia-sdk/client/flags" 12 clitestutil "github.com/Finschia/finschia-sdk/testutil/cli" 13 "github.com/Finschia/finschia-sdk/testutil/network" 14 sdk "github.com/Finschia/finschia-sdk/types" 15 "github.com/Finschia/finschia-sdk/x/mint/client/cli" 16 minttypes "github.com/Finschia/finschia-sdk/x/mint/types" 17 ) 18 19 type IntegrationTestSuite struct { 20 suite.Suite 21 22 cfg network.Config 23 network *network.Network 24 } 25 26 func NewIntegrationTestSuite(cfg network.Config) *IntegrationTestSuite { 27 return &IntegrationTestSuite{cfg: cfg} 28 } 29 30 func (s *IntegrationTestSuite) SetupSuite() { 31 s.T().Log("setting up integration test suite") 32 33 genesisState := s.cfg.GenesisState 34 35 var mintData minttypes.GenesisState 36 s.Require().NoError(s.cfg.Codec.UnmarshalJSON(genesisState[minttypes.ModuleName], &mintData)) 37 38 inflation := sdk.MustNewDecFromStr("1.0") 39 mintData.Minter.Inflation = inflation 40 mintData.Params.InflationMin = inflation 41 mintData.Params.InflationMax = inflation 42 43 mintDataBz, err := s.cfg.Codec.MarshalJSON(&mintData) 44 s.Require().NoError(err) 45 genesisState[minttypes.ModuleName] = mintDataBz 46 s.cfg.GenesisState = genesisState 47 48 s.network = network.New(s.T(), s.cfg) 49 50 _, err = s.network.WaitForHeight(1) 51 s.Require().NoError(err) 52 } 53 54 func (s *IntegrationTestSuite) TearDownSuite() { 55 s.T().Log("tearing down integration test suite") 56 s.network.Cleanup() 57 } 58 59 func (s *IntegrationTestSuite) TestGetCmdQueryParams() { 60 val := s.network.Validators[0] 61 62 testCases := []struct { 63 name string 64 args []string 65 expectedOutput string 66 }{ 67 { 68 "json output", 69 []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", ostcli.OutputFlag)}, 70 `{"mint_denom":"stake","inflation_rate_change":"0.130000000000000000","inflation_max":"1.000000000000000000","inflation_min":"1.000000000000000000","goal_bonded":"0.670000000000000000","blocks_per_year":"6311520"}`, 71 }, 72 { 73 "text output", 74 []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", ostcli.OutputFlag)}, 75 `blocks_per_year: "6311520" 76 goal_bonded: "0.670000000000000000" 77 inflation_max: "1.000000000000000000" 78 inflation_min: "1.000000000000000000" 79 inflation_rate_change: "0.130000000000000000" 80 mint_denom: stake`, 81 }, 82 } 83 84 for _, tc := range testCases { 85 tc := tc 86 87 s.Run(tc.name, func() { 88 cmd := cli.GetCmdQueryParams() 89 clientCtx := val.ClientCtx 90 91 out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) 92 s.Require().NoError(err) 93 s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) 94 }) 95 } 96 } 97 98 func (s *IntegrationTestSuite) TestGetCmdQueryInflation() { 99 val := s.network.Validators[0] 100 101 testCases := []struct { 102 name string 103 args []string 104 expectedOutput string 105 }{ 106 { 107 "json output", 108 []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", ostcli.OutputFlag)}, 109 `1.000000000000000000`, 110 }, 111 { 112 "text output", 113 []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", ostcli.OutputFlag)}, 114 `1.000000000000000000`, 115 }, 116 } 117 118 for _, tc := range testCases { 119 tc := tc 120 121 s.Run(tc.name, func() { 122 cmd := cli.GetCmdQueryInflation() 123 clientCtx := val.ClientCtx 124 125 out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) 126 s.Require().NoError(err) 127 s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) 128 }) 129 } 130 } 131 132 func (s *IntegrationTestSuite) TestGetCmdQueryAnnualProvisions() { 133 val := s.network.Validators[0] 134 135 testCases := []struct { 136 name string 137 args []string 138 expectedOutput string 139 }{ 140 { 141 "json output", 142 []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", ostcli.OutputFlag)}, 143 `500000000.000000000000000000`, 144 }, 145 { 146 "text output", 147 []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", ostcli.OutputFlag)}, 148 `500000000.000000000000000000`, 149 }, 150 } 151 152 for _, tc := range testCases { 153 tc := tc 154 155 s.Run(tc.name, func() { 156 cmd := cli.GetCmdQueryAnnualProvisions() 157 clientCtx := val.ClientCtx 158 159 out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) 160 s.Require().NoError(err) 161 s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) 162 }) 163 } 164 }