github.com/Finschia/finschia-sdk@v0.48.1/x/crisis/client/testsuite/suite.go (about) 1 package testutil 2 3 import ( 4 "fmt" 5 6 "github.com/gogo/protobuf/proto" 7 "github.com/stretchr/testify/suite" 8 9 "github.com/Finschia/finschia-sdk/client/flags" 10 clitestutil "github.com/Finschia/finschia-sdk/testutil/cli" 11 "github.com/Finschia/finschia-sdk/testutil/network" 12 sdk "github.com/Finschia/finschia-sdk/types" 13 "github.com/Finschia/finschia-sdk/x/crisis/client/cli" 14 ) 15 16 type IntegrationTestSuite struct { 17 suite.Suite 18 19 cfg network.Config 20 network *network.Network 21 } 22 23 func NewIntegrationTestSuite(cfg network.Config) *IntegrationTestSuite { 24 return &IntegrationTestSuite{cfg: cfg} 25 } 26 27 func (s *IntegrationTestSuite) SetupSuite() { 28 s.T().Log("setting up integration test suite") 29 30 s.network = network.New(s.T(), s.cfg) 31 _, err := s.network.WaitForHeight(1) 32 s.Require().NoError(err) 33 } 34 35 func (s *IntegrationTestSuite) TearDownSuite() { 36 s.T().Log("tearing down integration test suite") 37 s.network.Cleanup() 38 } 39 40 func (s *IntegrationTestSuite) TestNewMsgVerifyInvariantTxCmd() { 41 val := s.network.Validators[0] 42 43 testCases := []struct { 44 name string 45 args []string 46 expectErr bool 47 expectedCode uint32 48 respType proto.Message 49 }{ 50 { 51 "missing module", 52 []string{ 53 "", "total-supply", 54 fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), 55 fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), 56 fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), 57 fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()), 58 }, 59 true, 0, nil, 60 }, 61 { 62 "missing invariant route", 63 []string{ 64 "bank", "", 65 fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), 66 fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), 67 fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), 68 fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()), 69 }, 70 true, 0, nil, 71 }, 72 { 73 "valid transaction", 74 []string{ 75 "bank", "total-supply", 76 fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), 77 fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), 78 fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), 79 fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()), 80 }, 81 false, 0, &sdk.TxResponse{}, 82 }, 83 } 84 85 for _, tc := range testCases { 86 tc := tc 87 88 s.Run(tc.name, func() { 89 cmd := cli.NewMsgVerifyInvariantTxCmd() 90 clientCtx := val.ClientCtx 91 92 out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) 93 if tc.expectErr { 94 s.Require().Error(err) 95 } else { 96 s.Require().NoError(err) 97 s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) 98 99 txResp := tc.respType.(*sdk.TxResponse) 100 s.Require().Equal(tc.expectedCode, txResp.Code) 101 } 102 }) 103 } 104 }