@@ -153,31 +153,30 @@ func TestUnmarshalChainConfigJSON(t *testing.T) {
153153 }
154154
155155 testCases := map [string ]struct {
156- jsonData string // string for convenience
157- extra * testExtra
158- reuseJSONRoot bool
159- wantConfig ChainConfig
160- wantExtra any
161- wantErrMessage string
156+ jsonData string // string for convenience
157+ extra * testExtra
158+ reuseJSONRoot bool
159+ wantConfig ChainConfig
160+ wantExtra any
161+ wantErrRegex string
162162 }{
163163 "invalid_json" : {
164- extra : & testExtra {},
165- wantExtra : & testExtra {},
166- wantErrMessage : `decoding JSON into combination of *params.ChainConfig and *params.testExtra (as "extra" key): ` +
167- "unexpected end of JSON input" ,
164+ extra : & testExtra {},
165+ wantExtra : & testExtra {},
166+ wantErrRegex : `^decoding JSON into combination of \*.+\.ChainConfig and \*.+\.testExtra \(as "extra" key\): .+$` ,
168167 },
169168 "nil_extra_at_root_depth" : {
170- jsonData : `{"chainId": 1}` ,
171- extra : nil ,
172- reuseJSONRoot : true ,
173- wantExtra : (* testExtra )(nil ),
174- wantErrMessage : "*params. testExtra argument is nil; use *params. ChainConfig.UnmarshalJSON( ) directly" ,
169+ jsonData : `{"chainId": 1}` ,
170+ extra : nil ,
171+ reuseJSONRoot : true ,
172+ wantExtra : (* testExtra )(nil ),
173+ wantErrRegex : `^\*.+. testExtra argument is nil; use \*.+\. ChainConfig\ .UnmarshalJSON\(\ ) directly$` ,
175174 },
176175 "nil_extra_at_extra_key" : {
177- jsonData : `{"chainId": 1}` ,
178- extra : nil ,
179- wantExtra : (* testExtra )(nil ),
180- wantErrMessage : "*params. testExtra argument is nil; use *params. ChainConfig.UnmarshalJSON( ) directly" ,
176+ jsonData : `{"chainId": 1}` ,
177+ extra : nil ,
178+ wantExtra : (* testExtra )(nil ),
179+ wantErrRegex : `^\*.+\. testExtra argument is nil; use \*.+\. ChainConfig.UnmarshalJSON\(\ ) directly$` ,
181180 },
182181 "no_extra_at_extra_key" : {
183182 jsonData : `{"chainId": 1}` ,
@@ -193,23 +192,19 @@ func TestUnmarshalChainConfigJSON(t *testing.T) {
193192 wantExtra : & testExtra {},
194193 },
195194 "wrong_extra_type_at_extra_key" : {
196- jsonData : `{"chainId": 1, "extra": 1}` ,
197- extra : & testExtra {},
198- wantConfig : ChainConfig {ChainID : big .NewInt (1 )},
199- wantExtra : & testExtra {},
200- wantErrMessage : `decoding JSON into combination of *params.ChainConfig and *params.testExtra (as "extra" key): ` +
201- "json: cannot unmarshal number into Go struct field " +
202- ".extra of type params.testExtra" ,
195+ jsonData : `{"chainId": 1, "extra": 1}` ,
196+ extra : & testExtra {},
197+ wantConfig : ChainConfig {ChainID : big .NewInt (1 )},
198+ wantExtra : & testExtra {},
199+ wantErrRegex : `^decoding JSON into combination of \*.+\.ChainConfig and \*.+\.testExtra \(as "extra" key\): .+$` ,
203200 },
204201 "wrong_extra_type_at_root_depth" : {
205202 jsonData : `{"chainId": 1, "field": 1}` ,
206203 extra : & testExtra {},
207204 reuseJSONRoot : true ,
208205 wantConfig : ChainConfig {ChainID : big .NewInt (1 )},
209206 wantExtra : & testExtra {},
210- wantErrMessage : "decoding JSON into *params.testExtra: " +
211- "json: cannot unmarshal number into Go struct field " +
212- "testExtra.field of type string" ,
207+ wantErrRegex : `^decoding JSON into \*.+\.testExtra: .+` ,
213208 },
214209 "extra_success_at_extra_key" : {
215210 jsonData : `{"chainId": 1, "extra": {"field":"value"}}` ,
@@ -234,10 +229,11 @@ func TestUnmarshalChainConfigJSON(t *testing.T) {
234229 data := []byte (testCase .jsonData )
235230 config := ChainConfig {}
236231 err := UnmarshalChainConfigJSON (data , & config , testCase .extra , testCase .reuseJSONRoot )
237- if testCase .wantErrMessage == "" {
232+ if testCase .wantErrRegex == "" {
238233 require .NoError (t , err )
239234 } else {
240- require .EqualError (t , err , testCase .wantErrMessage )
235+ require .Error (t , err )
236+ require .Regexp (t , testCase .wantErrRegex , err .Error ())
241237 }
242238 assert .Equal (t , testCase .wantConfig , config )
243239 assert .Equal (t , testCase .wantExtra , testCase .extra )
@@ -249,19 +245,17 @@ func TestMarshalChainConfigJSON(t *testing.T) {
249245 t .Parallel ()
250246
251247 testCases := map [string ]struct {
252- config ChainConfig
253- extra any
254- reuseJSONRoot bool
255- wantJSONData string // string for convenience
256- wantErrMessage string
248+ config ChainConfig
249+ extra any
250+ reuseJSONRoot bool
251+ wantJSONData string // string for convenience
252+ wantErrRegex string
257253 }{
258254 "invalid_extra_at_extra_key" : {
259255 extra : struct {
260256 Field chan struct {} `json:"field"`
261257 }{},
262- wantErrMessage : "encoding combination of params.ChainConfig and " +
263- `struct { Field chan struct {} "json:\"field\"" } (as "extra" key) to JSON: ` +
264- "json: unsupported type: chan struct {}" ,
258+ wantErrRegex : `^encoding combination of .+\.ChainConfig and .+ to JSON: .+$` ,
265259 },
266260 "nil_extra_at_extra_key" : {
267261 wantJSONData : `{"chainId":null}` ,
@@ -277,17 +271,14 @@ func TestMarshalChainConfigJSON(t *testing.T) {
277271 Field chan struct {} `json:"field"`
278272 }{},
279273 reuseJSONRoot : true ,
280- wantErrMessage : "converting extra config to JSON raw messages: " +
281- `encoding struct { Field chan struct {} "json:\"field\"" }: ` +
282- "json: unsupported type: chan struct {}" ,
274+ wantErrRegex : "^converting extra config to JSON raw messages: .+$" ,
283275 },
284276 "duplicate_key" : {
285277 extra : struct {
286278 Field string `json:"chainId"`
287279 }{},
288280 reuseJSONRoot : true ,
289- wantErrMessage : `duplicate JSON key "chainId" in ChainConfig` +
290- ` and extra struct { Field string "json:\"chainId\"" }` ,
281+ wantErrRegex : `^duplicate JSON key "chainId" in ChainConfig and extra struct .+$` ,
291282 },
292283 "nil_extra_at_root_depth" : {
293284 extra : nil ,
@@ -310,10 +301,11 @@ func TestMarshalChainConfigJSON(t *testing.T) {
310301
311302 config := ChainConfig {}
312303 data , err := MarshalChainConfigJSON (config , testCase .extra , testCase .reuseJSONRoot )
313- if testCase .wantErrMessage == "" {
304+ if testCase .wantErrRegex == "" {
314305 require .NoError (t , err )
315306 } else {
316- require .EqualError (t , err , testCase .wantErrMessage )
307+ require .Error (t , err )
308+ assert .Regexp (t , testCase .wantErrRegex , err .Error ())
317309 }
318310 assert .Equal (t , testCase .wantJSONData , string (data ))
319311 })
0 commit comments