github.com/Finschia/finschia-sdk@v0.48.1/x/mint/client/testutil/grpc.go (about)

     1  package testutil
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Finschia/finschia-sdk/testutil"
     7  	sdk "github.com/Finschia/finschia-sdk/types"
     8  	grpctypes "github.com/Finschia/finschia-sdk/types/grpc"
     9  
    10  	"github.com/gogo/protobuf/proto"
    11  
    12  	minttypes "github.com/Finschia/finschia-sdk/x/mint/types"
    13  )
    14  
    15  func (s *IntegrationTestSuite) TestQueryGRPC() {
    16  	val := s.network.Validators[0]
    17  	baseURL := val.APIAddress
    18  	testCases := []struct {
    19  		name     string
    20  		url      string
    21  		headers  map[string]string
    22  		respType proto.Message
    23  		expected proto.Message
    24  	}{
    25  		{
    26  			"gRPC request params",
    27  			fmt.Sprintf("%s/cosmos/mint/v1beta1/params", baseURL),
    28  			map[string]string{},
    29  			&minttypes.QueryParamsResponse{},
    30  			&minttypes.QueryParamsResponse{
    31  				Params: minttypes.NewParams("stake", sdk.NewDecWithPrec(13, 2), sdk.NewDecWithPrec(100, 2),
    32  					sdk.NewDec(1), sdk.NewDecWithPrec(67, 2), 60*60*8766/5),
    33  			},
    34  		},
    35  		{
    36  			"gRPC request inflation",
    37  			fmt.Sprintf("%s/cosmos/mint/v1beta1/inflation", baseURL),
    38  			map[string]string{},
    39  			&minttypes.QueryInflationResponse{},
    40  			&minttypes.QueryInflationResponse{
    41  				Inflation: sdk.NewDec(1),
    42  			},
    43  		},
    44  		{
    45  			"gRPC request annual provisions",
    46  			fmt.Sprintf("%s/cosmos/mint/v1beta1/annual_provisions", baseURL),
    47  			map[string]string{
    48  				grpctypes.GRPCBlockHeightHeader: "1",
    49  			},
    50  			&minttypes.QueryAnnualProvisionsResponse{},
    51  			&minttypes.QueryAnnualProvisionsResponse{
    52  				AnnualProvisions: sdk.NewDec(500000000),
    53  			},
    54  		},
    55  	}
    56  	for _, tc := range testCases {
    57  		tc := tc
    58  		resp, err := testutil.GetRequestWithHeaders(tc.url, tc.headers)
    59  		s.Run(tc.name, func() {
    60  			s.Require().NoError(err)
    61  			s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType))
    62  			s.Require().Equal(tc.expected.String(), tc.respType.String())
    63  		})
    64  	}
    65  }