Skip to content

Commit 1ca46c5

Browse files
committed
Split be.Error* output into multiple lines
1 parent 1a71918 commit 1ca46c5

File tree

2 files changed

+91
-27
lines changed

2 files changed

+91
-27
lines changed

be/assertions.go

+57-15
Original file line numberDiff line numberDiff line change
@@ -190,49 +190,91 @@ func ErrorContaining(err error, msg string) ghost.Result {
190190
switch {
191191
case err == nil && argMsg == fmt.Sprintf("%q", msg):
192192
return ghost.Result{
193-
Ok: false,
194-
Message: fmt.Sprintf(`%v is nil; missing error message: %v`, argErr, msg),
193+
Ok: false,
194+
Message: fmt.Sprintf(`error %v is nil, does not contain message
195+
got: <nil>
196+
want: %v`,
197+
argErr,
198+
msg,
199+
),
195200
}
196201
case err == nil:
197202
return ghost.Result{
198-
Ok: false,
199-
Message: fmt.Sprintf(`%v is nil; missing error message %v: %v`, argErr, argMsg, msg),
203+
Ok: false,
204+
Message: fmt.Sprintf(`error %v is nil, does not contain %v
205+
got: <nil>
206+
want: %v`,
207+
argErr,
208+
argMsg,
209+
msg,
210+
),
200211
}
201212
case strings.Contains(err.Error(), msg):
202213
return ghost.Result{
203-
Ok: true,
204-
Message: fmt.Sprintf("%v contains error message %q: %v", argErr, msg, err),
214+
Ok: true,
215+
Message: fmt.Sprintf(`error %v contains message %v
216+
got: %v
217+
want: %v`,
218+
argErr,
219+
argMsg,
220+
err,
221+
msg,
222+
),
205223
}
206224
default:
207225
return ghost.Result{
208-
Ok: false,
209-
Message: fmt.Sprintf("%v does not contain error message %q: %v", argErr, msg, err),
226+
Ok: false,
227+
Message: fmt.Sprintf(`error %v does not contain message %v
228+
got: %v
229+
want: %v`,
230+
argErr,
231+
argMsg,
232+
err,
233+
msg,
234+
),
210235
}
211236
}
212237
}
213238

214239
// ErrorEqual asserts that an error string equals a particular message.
215240
func ErrorEqual(err error, msg string) ghost.Result {
216241
args := ghostlib.ArgsFromAST(err, msg)
217-
argErr := args[0]
242+
argErr, argMsg := args[0], args[1]
218243

219244
if err == nil {
220245
return ghost.Result{
221-
Ok: false,
222-
Message: fmt.Sprintf(`%v is nil; want message: %v`, argErr, msg),
246+
Ok: false,
247+
Message: fmt.Sprintf(`error %v is nil
248+
got: <nil>
249+
want: %v`,
250+
argErr,
251+
msg,
252+
),
223253
}
224254
}
225255

226256
if err.Error() == msg {
227257
return ghost.Result{
228-
Ok: true,
229-
Message: fmt.Sprintf("%v equals error message %q: %v", argErr, msg, err),
258+
Ok: true,
259+
Message: fmt.Sprintf(`error %v has message %v
260+
value: %v`,
261+
argErr,
262+
argMsg,
263+
err,
264+
),
230265
}
231266
}
232267

233268
return ghost.Result{
234-
Ok: false,
235-
Message: fmt.Sprintf("%v does not equal error message %q: %v", argErr, msg, err),
269+
Ok: false,
270+
Message: fmt.Sprintf(`error %v does not have message %v
271+
got: %v
272+
want: %v`,
273+
argErr,
274+
argMsg,
275+
err,
276+
msg,
277+
),
236278
}
237279
}
238280

be/assertions_test.go

+34-12
Original file line numberDiff line numberDiff line change
@@ -353,14 +353,18 @@ func TestErrorContaining(t *testing.T) {
353353
g.Should(be.True(result.Ok))
354354
g.Should(be.Equal(
355355
result.Message,
356-
`err contains error message "oob": foobar`,
356+
`error err contains message msg
357+
got: foobar
358+
want: oob`,
357359
))
358360

359361
result = be.ErrorContaining(errors.New("foobar"), "oob")
360362
g.Should(be.True(result.Ok))
361363
g.Should(be.Equal(
362364
result.Message,
363-
`errors.New("foobar") contains error message "oob": foobar`,
365+
`error errors.New("foobar") contains message "oob"
366+
got: foobar
367+
want: oob`,
364368
))
365369
})
366370

@@ -374,14 +378,18 @@ func TestErrorContaining(t *testing.T) {
374378
g.Should(be.False(result.Ok))
375379
g.Should(be.Equal(
376380
result.Message,
377-
`err does not contain error message "boo": foobar`,
381+
`error err does not contain message msg
382+
got: foobar
383+
want: boo`,
378384
))
379385

380386
result = be.ErrorContaining(errors.New("foobar"), "boo")
381387
g.Should(be.False(result.Ok))
382388
g.Should(be.Equal(
383389
result.Message,
384-
`errors.New("foobar") does not contain error message "boo": foobar`,
390+
`error errors.New("foobar") does not contain message "boo"
391+
got: foobar
392+
want: boo`,
385393
))
386394
})
387395

@@ -393,11 +401,15 @@ func TestErrorContaining(t *testing.T) {
393401

394402
result := be.ErrorContaining(err, msg)
395403
g.Should(be.False(result.Ok))
396-
g.Should(be.Equal(result.Message, `err is nil; missing error message msg: boo`))
404+
g.Should(be.Equal(result.Message, `error err is nil, does not contain msg
405+
got: <nil>
406+
want: boo`))
397407

398408
result = be.ErrorContaining(nil, "boo")
399409
g.Should(be.False(result.Ok))
400-
g.Should(be.Equal(result.Message, `nil is nil; missing error message: boo`))
410+
g.Should(be.Equal(result.Message, `error nil is nil, does not contain message
411+
got: <nil>
412+
want: boo`))
401413
})
402414
}
403415

@@ -412,14 +424,16 @@ func TestErrorEqual(t *testing.T) {
412424
g.Should(be.True(result.Ok))
413425
g.Should(be.Equal(
414426
result.Message,
415-
`err equals error message "foobar": foobar`,
427+
`error err has message msg
428+
value: foobar`,
416429
))
417430

418431
result = be.ErrorEqual(errors.New("foobar"), "foobar")
419432
g.Should(be.True(result.Ok))
420433
g.Should(be.Equal(
421434
result.Message,
422-
`errors.New("foobar") equals error message "foobar": foobar`,
435+
`error errors.New("foobar") has message "foobar"
436+
value: foobar`,
423437
))
424438
})
425439

@@ -433,14 +447,18 @@ func TestErrorEqual(t *testing.T) {
433447
g.Should(be.False(result.Ok))
434448
g.Should(be.Equal(
435449
result.Message,
436-
`err does not equal error message "boo": foobar`,
450+
`error err does not have message msg
451+
got: foobar
452+
want: boo`,
437453
))
438454

439455
result = be.ErrorEqual(errors.New("foobar"), "boo")
440456
g.Should(be.False(result.Ok))
441457
g.Should(be.Equal(
442458
result.Message,
443-
`errors.New("foobar") does not equal error message "boo": foobar`,
459+
`error errors.New("foobar") does not have message "boo"
460+
got: foobar
461+
want: boo`,
444462
))
445463
})
446464

@@ -452,11 +470,15 @@ func TestErrorEqual(t *testing.T) {
452470

453471
result := be.ErrorEqual(err, msg)
454472
g.Should(be.False(result.Ok))
455-
g.Should(be.Equal(result.Message, `err is nil; want message: boo`))
473+
g.Should(be.Equal(result.Message, `error err is nil
474+
got: <nil>
475+
want: boo`))
456476

457477
result = be.ErrorEqual(nil, "boo")
458478
g.Should(be.False(result.Ok))
459-
g.Should(be.Equal(result.Message, `nil is nil; want message: boo`))
479+
g.Should(be.Equal(result.Message, `error nil is nil
480+
got: <nil>
481+
want: boo`))
460482
})
461483
}
462484

0 commit comments

Comments
 (0)