github.com/Finschia/finschia-sdk@v0.48.1/x/evidence/client/testutil/suite.go (about) 1 package testutil 2 3 import ( 4 "strings" 5 6 "github.com/stretchr/testify/suite" 7 8 clitestutil "github.com/Finschia/finschia-sdk/testutil/cli" 9 "github.com/Finschia/finschia-sdk/testutil/network" 10 "github.com/Finschia/finschia-sdk/x/evidence/client/cli" 11 ) 12 13 type IntegrationTestSuite struct { 14 suite.Suite 15 16 cfg network.Config 17 network *network.Network 18 } 19 20 func NewIntegrationTestSuite(cfg network.Config) *IntegrationTestSuite { 21 return &IntegrationTestSuite{cfg: cfg} 22 } 23 24 func (s *IntegrationTestSuite) SetupSuite() { 25 s.T().Log("setting up integration test suite") 26 27 s.network = network.New(s.T(), s.cfg) 28 29 _, err := s.network.WaitForHeight(1) 30 s.Require().NoError(err) 31 } 32 33 func (s *IntegrationTestSuite) TearDownSuite() { 34 s.T().Log("tearing down integration test suite") 35 s.network.Cleanup() 36 } 37 38 func (s *IntegrationTestSuite) TestGetQueryCmd() { 39 val := s.network.Validators[0] 40 41 testCases := map[string]struct { 42 args []string 43 expectedOutput string 44 expectErr bool 45 }{ 46 "non-existent evidence": { 47 []string{"DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660"}, 48 "evidence DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660 not found", 49 true, 50 }, 51 "all evidence (default pagination)": { 52 []string{}, 53 "evidence: []\npagination:\n next_key: null\n total: \"0\"", 54 false, 55 }, 56 } 57 58 for name, tc := range testCases { 59 tc := tc 60 61 s.Run(name, func() { 62 cmd := cli.GetQueryCmd() 63 clientCtx := val.ClientCtx 64 65 out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) 66 if tc.expectErr { 67 s.Require().Error(err) 68 } else { 69 s.Require().NoError(err) 70 } 71 72 s.Require().Contains(strings.TrimSpace(out.String()), tc.expectedOutput) 73 }) 74 } 75 }