@@ -8,54 +8,79 @@ import (
8
8
9
9
func TestParseKeysFromOut (t * testing.T ) {
10
10
testcases := []struct {
11
- name string
12
- out string
13
- expKeys []string
14
- expError bool
11
+ name string
12
+ out string
13
+ expKeys []string
14
+ expError bool
15
+ errContains string
15
16
}{
16
17
{
17
- name : "pass" ,
18
- out : ` - address: evmos19mx9kcksequm4m4xume5h0k9fquwgmea3yvu89
19
- name: dev0
20
- pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"AmquZBW+CPcgHKx6D4YRDICzr0MNcRvl9Wm/jJn8wJxs"}'
21
- type: local
22
- - address: evmos18z7xfs864u49jcv6gkgajpteesjl5d7krpple6
23
- name: dev1
24
- pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"AtY/rqJrmhKbXrQ02xSxq/t9JGgbP2T7HPGTZJIbuT8I"}'
25
- type: local
26
- - address: evmos12rrt7vcnxvhxad6gzz0vt5psdlnurtldety57n
27
- name: dev2
28
- pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A544btlGjv4zB/qpWT8dQqlAHrcmgZEvrFSgJnp7Yjt4"}'
29
- type: local
30
- - address: evmos1dln2gjtsfd2sny6gwdxzyxcsr0uu8sh5nwajun
31
- name: testKey1
32
- pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"Amja5pRiVw+5vPkozo6Eo20AEbYVVBqOKBi5yP7EbxyJ"}'
33
- type: local
34
- - address: evmos1qdxgxz9g2la8g9eyjdq4srlpxgrmuqd6ty88zm
35
- name: testKey2
36
- pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"A+ytKfWmkQiW0c6iOCXSL71e4b5njmJVUd1msONsPEnA"}'
37
- type: local
38
- - address: evmos1hduvvhjvu0pqu7m97pajymdsupqx3us3ntey9a
39
- name: testKey3
40
- pubkey: '{"@type":"/ethermint.crypto.v1.ethsecp256k1.PubKey","key":"AsdAPndEVttzhUz5iSm0/FoFxkzB0oZE7DuKf3NjzXkS"}'
41
- type: local` ,
42
- expKeys : []string {"dev0" , "dev1" , "dev2" , "testKey1" , "testKey2" , "testKey3" },
18
+ name : "pass" ,
19
+ out : `[{"name":"dev0","type":"local","address":"evmos16qljjgus9zevcxdjscuf502zy6en427nty78c0","pubkey":"{\"@type\":\"/ethermint.crypto.v1.ethsecp256k1.PubKey\",\"key\":\"A7YjISvuApMJ/OGKVifuVqrUnJYryXPcVAR5zPzP5yz5\"}"},{"name":"dev1","type":"local","address":"evmos16cqwxv4hcqpzc7zd9fd4pw3jr4yf9jxrfr6tj0","pubkey":"{\"@type\":\"/ethermint.crypto.v1.ethsecp256k1.PubKey\",\"key\":\"A+VsC7GstX+ItZDKvWSmbQrjuvmZ0GenWB46Pi6F0fwL\"}"},{"name":"dev2","type":"local","address":"evmos1ecamqksjl7erx89lextmru88mpy669psjcehlz","pubkey":"{\"@type\":\"/ethermint.crypto.v1.ethsecp256k1.PubKey\",\"key\":\"Aha/x6t6Uaiw+md5F4XjaPleHTw6toUU9egkWCPm50wk\"}"},{"name":"testKey","type":"local","address":"evmos17slw9hdyxvxypzsdwj9vjg7uedhfw26ksqydye","pubkey":"{\"@type\":\"/ethermint.crypto.v1.ethsecp256k1.PubKey\",\"key\":\"ApDf/TgsVwangM3CciQuAoIgBvo5ZXxPHkA7K2XpeAae\"}"}]` ,
20
+ expKeys : []string {"dev0" , "dev1" , "dev2" , "testKey" },
43
21
},
44
22
{
45
- name : "fail - no keys" ,
46
- out : "invalid output" ,
47
- expError : true ,
23
+ name : "fail - no keys" ,
24
+ out : "invalid output" ,
25
+ expError : true ,
26
+ errContains : "error unmarshalling keys" ,
48
27
},
49
28
}
50
29
51
30
for _ , tc := range testcases {
52
31
t .Run (tc .name , func (t * testing.T ) {
53
- keys , err := parseKeysFromOut (tc .out )
32
+ accounts , err := parseAccountsFromOut (tc .out )
54
33
if tc .expError {
55
- require .Error (t , err , "expected error parsing keys" )
34
+ require .Error (t , err , "expected error parsing accounts" )
35
+ require .ErrorContains (t , err , tc .errContains , "expected different error" )
56
36
} else {
57
- require .NoError (t , err , "unexpected error parsing keys" )
58
- require .Equal (t , tc .expKeys , keys )
37
+ require .NoError (t , err , "unexpected error parsing accounts" )
38
+
39
+ var keys []string
40
+ for _ , account := range accounts {
41
+ keys = append (keys , account .Name )
42
+ }
43
+ require .Equal (t , tc .expKeys , keys , "expected different keys" )
44
+ }
45
+ })
46
+ }
47
+ }
48
+
49
+ func TestParseDelegationsFromResponse (t * testing.T ) {
50
+ testcases := []struct {
51
+ name string
52
+ out string
53
+ expVals []string
54
+ expError bool
55
+ errContains string
56
+ }{
57
+ {
58
+ name : "pass" ,
59
+ out : `{"delegation_responses":[{"delegation":{"delegator_address":"evmos1v6jyld5mcu37d3dfe7kjrw0htkc4wu2mxn9y25","validator_address":"evmosvaloper1v6jyld5mcu37d3dfe7kjrw0htkc4wu2mta25tf","shares":"1000000000000000000000.000000000000000000"},"balance":{"denom":"aevmos","amount":"1000000000000000000000"}}],"pagination":{"next_key":null,"total":"0"}}` ,
60
+ expVals : []string {"evmosvaloper1v6jyld5mcu37d3dfe7kjrw0htkc4wu2mta25tf" },
61
+ },
62
+ {
63
+ name : "fail - no keys" ,
64
+ out : "invalid output" ,
65
+ expError : true ,
66
+ errContains : "error unmarshalling delegations" ,
67
+ },
68
+ }
69
+
70
+ for _ , tc := range testcases {
71
+ t .Run (tc .name , func (t * testing.T ) {
72
+ delegations , err := parseDelegationsFromResponse (tc .out )
73
+ if tc .expError {
74
+ require .Error (t , err , "expected error parsing delegations" )
75
+ require .ErrorContains (t , err , tc .errContains , "expected different error" )
76
+ } else {
77
+ require .NoError (t , err , "unexpected error parsing delegations" )
78
+
79
+ var vals []string
80
+ for _ , delegation := range delegations {
81
+ vals = append (vals , delegation .ValidatorAddress )
82
+ }
83
+ require .Equal (t , tc .expVals , vals , "expected different validators" )
59
84
}
60
85
})
61
86
}
0 commit comments