Skip to content

Commit

Permalink
fix electoral query for relayer
Browse files Browse the repository at this point in the history
  • Loading branch information
Phuong Do committed Sep 20, 2022
1 parent e6fad2b commit d0a01eb
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 3 deletions.
72 changes: 70 additions & 2 deletions x/electoral/client/tests/suite.go
Expand Up @@ -2,13 +2,14 @@ package tests

import (
"fmt"
"os"

"github.com/cosmos/cosmos-sdk/testutil/network"
"github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
netutilts "github.com/sharering/shareledger/testutil/network"
types2 "github.com/sharering/shareledger/x/electoral/types"
"github.com/stretchr/testify/suite"
"os"
)

type ElectoralIntegrationTestSuite struct {
Expand Down Expand Up @@ -452,7 +453,7 @@ func (s *ElectoralIntegrationTestSuite) TestEnrollIDSigner() {
if len(tc.oAccState) != 0 {
for _, a := range tc.oAccState {
accOut, err := ExCmdGetIdSigner(validatorCtx, a.Address, netutilts.JSONFlag)
s.Require().NoError(err, "fail to get doc issuer")
s.Require().NoError(err, "fail to get id signer")
acc := JsonIDSignerUnmarshal(s.T(), accOut.Bytes())
s.Equal(a.GetKey(), acc.GetAccState().Key, "doc issuer key no equal")
s.Equal(a.GetAddress(), acc.GetAccState().Address, "doc issuer address no equal")
Expand Down Expand Up @@ -529,3 +530,70 @@ func (s *ElectoralIntegrationTestSuite) TestRevokeIDSigner() {
})
}
}

func (s *ElectoralIntegrationTestSuite) TestEnrollRelayer() {

testSuite := []struct {
d string
iAddress []string
txCreator string
txFee int
oErr error
oRes *types.TxResponse
oAccState []types2.AccState
}{
{
d: "enroll_relayer",
iAddress: []string{"shareledger1sx9dp9289h8lxvg0u9z4g77y93zplvq63stkd5"},
txCreator: netutilts.KeyAuthority,
txFee: 2,
oErr: nil,
oRes: &types.TxResponse{Code: netutilts.ShareLedgerSuccessCode},
oAccState: []types2.AccState{
{
Key: fmt.Sprintf("%sshareledger1sx9dp9289h8lxvg0u9z4g77y93zplvq63stkd5", types2.AccStateKeyRelayer),
Address: "shareledger1sx9dp9289h8lxvg0u9z4g77y93zplvq63stkd5",
Status: "active",
},
},
},
{
d: "revoke_relayer_but_not_authority",
iAddress: []string{"shareledger1kcu0fdn5f07wq9534yqy3t78p3uuc5rawsshe8"},
txCreator: netutilts.KeyAccount1,
txFee: 2,
oErr: nil,
oRes: &types.TxResponse{Code: sdkerrors.ErrUnauthorized.ABCICode()},
},
}
validatorCtx := s.network.Validators[0].ClientCtx
for _, tc := range testSuite {
s.Run(tc.d, func() {
stdOut, err := ExCmdEnrollRelayer(validatorCtx, tc.iAddress,
netutilts.SHRFee(tc.txFee),
netutilts.JSONFlag,
netutilts.SkipConfirmation,
netutilts.MakeByAccount(tc.txCreator))
if tc.oErr != nil {
s.NotNilf(err, "case %s require error this step", tc.d)
}

txnResponse := netutilts.ParseStdOut(s.T(), stdOut.Bytes())
s.Require().NoError(s.network.WaitForNextBlock())
if tc.oRes != nil {
s.Equal(tc.oRes.Code, txnResponse.Code, fmt.Sprintf("the case %s: raw log :%s", tc.d, txnResponse.String()))
}

if len(tc.oAccState) != 0 {
for _, a := range tc.oAccState {
accOut, err := ExCmdGetRelayer(validatorCtx, a.Address, netutilts.JSONFlag)
s.Require().NoError(err, "fail to get relayer")
acc := JsonIRelayerUnmarshal(s.T(), accOut.Bytes())
s.Equal(a.GetKey(), acc.GetAccState().Key, "relayer key no equal")
s.Equal(a.GetAddress(), acc.GetAccState().Address, "relayer address no equal")
s.Equal(a.GetStatus(), acc.GetAccState().Status, "relayer status no equal")
}
}
})
}
}
19 changes: 19 additions & 0 deletions x/electoral/client/tests/test_helpers.go
Expand Up @@ -142,6 +142,13 @@ func JsonIDSignerUnmarshal(t *testing.T, bz []byte) types.QueryIdSignerResponse
require.NoError(t, err)
return a
}
func JsonIRelayerUnmarshal(t *testing.T, bz []byte) types.QueryRelayerResponse {
var a types.QueryRelayerResponse
encCfg := cosmoscmd.MakeEncodingConfig(app.ModuleBasics)
err := encCfg.Marshaler.UnmarshalJSON(bz, &a)
require.NoError(t, err)
return a
}
func JsonArrproverUnmarshal(t *testing.T, bz []byte) types.QueryApproverResponse {
var a types.QueryApproverResponse
encCfg := cosmoscmd.MakeEncodingConfig(app.ModuleBasics)
Expand All @@ -163,10 +170,22 @@ func ExCmdEnrollApprover(clientCtx client.Context, address []string, additionalF

return clitestutil.ExecTestCLICmd(clientCtx, cli.CmdEnrollLoaders(), args)
}
func ExCmdEnrollRelayer(clientCtx client.Context, address []string, additionalFlags ...string) (testutil.BufferWriter, error) {
args := append(address, additionalFlags...)

args = append(args, additionalFlags...)

return clitestutil.ExecTestCLICmd(clientCtx, cli.CmdEnrollRelayers(), args)
}
func ExCmdApprover(clientCtx client.Context, address string, additionalFlags ...string) (testutil.BufferWriter, error) {
args := []string{address}
args = append(args, additionalFlags...)

return clitestutil.ExecTestCLICmd(clientCtx, cli.CmdApprover(), args)
}
func ExCmdGetRelayer(clientCtx client.Context, address string, additionalFlags ...string) (testutil.BufferWriter, error) {
args := []string{address}
args = append(args, additionalFlags...)

return clitestutil.ExecTestCLICmd(clientCtx, cli.CmdRelayer(), args)
}
2 changes: 1 addition & 1 deletion x/electoral/keeper/grpc_query_relayers.go
Expand Up @@ -16,7 +16,7 @@ func (k Keeper) Relayers(goCtx context.Context, req *types.QueryRelayersRequest)

ctx := sdk.UnwrapSDKContext(goCtx)

list := k.IterateAccState(ctx, types.AccStateKeyApprover)
list := k.IterateAccState(ctx, types.AccStateKeyRelayer)
relayers := make([]*types.AccState, 0, len(list))
for _, i := range list {
relayers = append(relayers, &types.AccState{
Expand Down

0 comments on commit d0a01eb

Please sign in to comment.