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  }