Skip to content

Commit df1dde1

Browse files
update: tests
1 parent 35d5026 commit df1dde1

File tree

1 file changed

+56
-14
lines changed

1 file changed

+56
-14
lines changed

x/tx/decode/decode_test.go

Lines changed: 56 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,68 @@ func TestDecode(t *testing.T) {
6161
gogoproto.RegisterType(&testpb.A{}, string((&testpb.A{}).ProtoReflect().Descriptor().FullName()))
6262

6363
testCases := []struct {
64-
name string
65-
msg proto.Message
66-
error string
64+
name string
65+
msg proto.Message
66+
authInfo *txv1beta1.AuthInfo
67+
error string
68+
numSigners int
6769
}{
6870
{
6971
name: "happy path",
7072
msg: &bankv1beta1.MsgSend{},
73+
authInfo: &txv1beta1.AuthInfo{
74+
SignerInfos: signerInfo,
75+
Fee: &txv1beta1.Fee{
76+
Amount: []*basev1beta1.Coin{{Amount: "100", Denom: "denom"}},
77+
GasLimit: 100,
78+
Payer: "",
79+
Granter: "",
80+
},
81+
},
82+
numSigners: 1,
7183
},
7284
{
73-
name: "empty signer option",
74-
msg: &testpb.A{},
85+
name: "empty signer option",
86+
msg: &testpb.A{},
87+
authInfo: &txv1beta1.AuthInfo{
88+
SignerInfos: signerInfo,
89+
Fee: &txv1beta1.Fee{
90+
Amount: []*basev1beta1.Coin{{Amount: "100", Denom: "denom"}},
91+
GasLimit: 100,
92+
Payer: "",
93+
Granter: "",
94+
},
95+
},
7596
error: "no cosmos.msg.v1.signer option found for message A; use DefineCustomGetSigners to specify a custom getter: tx parse error",
7697
},
98+
{
99+
name: "invalid feePayer",
100+
msg: &bankv1beta1.MsgSend{},
101+
authInfo: &txv1beta1.AuthInfo{
102+
SignerInfos: signerInfo,
103+
Fee: &txv1beta1.Fee{
104+
Amount: []*basev1beta1.Coin{{Amount: "100", Denom: "denom"}},
105+
GasLimit: 100,
106+
Payer: "payer",
107+
Granter: "",
108+
},
109+
},
110+
error: `encoding/hex: invalid byte: U+0070 'p': tx parse error`,
111+
},
112+
{
113+
name: "valid feePayer",
114+
msg: &bankv1beta1.MsgSend{},
115+
authInfo: &txv1beta1.AuthInfo{
116+
SignerInfos: signerInfo,
117+
Fee: &txv1beta1.Fee{
118+
Amount: []*basev1beta1.Coin{{Amount: "100", Denom: "denom"}},
119+
GasLimit: 100,
120+
Payer: "636f736d6f733168363935356b3836397a72306770383975717034337a373263393033666d35647a366b75306c", // hexadecimal to work with dummyAddressCodec
121+
Granter: "",
122+
},
123+
},
124+
numSigners: 2,
125+
},
77126
}
78127

79128
for _, tc := range testCases {
@@ -89,15 +138,7 @@ func TestDecode(t *testing.T) {
89138
Memo: "memo",
90139
TimeoutHeight: 0,
91140
},
92-
AuthInfo: &txv1beta1.AuthInfo{
93-
SignerInfos: signerInfo,
94-
Fee: &txv1beta1.Fee{
95-
Amount: []*basev1beta1.Coin{{Amount: "100", Denom: "denom"}},
96-
GasLimit: 100,
97-
Payer: "",
98-
Granter: "",
99-
},
100-
},
141+
AuthInfo: tc.authInfo,
101142
Signatures: nil,
102143
}
103144
txBytes, err := proto.Marshal(tx)
@@ -109,6 +150,7 @@ func TestDecode(t *testing.T) {
109150
return
110151
}
111152
require.NoError(t, err)
153+
require.Equal(t, len(decodeTx.Signers), tc.numSigners)
112154

113155
require.Equal(t,
114156
fmt.Sprintf("/%s", tc.msg.ProtoReflect().Descriptor().FullName()),

0 commit comments

Comments
 (0)