Skip to content

Commit dac5a0e

Browse files
committed
Use cmp for diffing multi-line strings
1 parent 2090947 commit dac5a0e

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

be/assertions.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,20 @@ value: %v
171171
Ok: false,
172172
Message: fmt.Sprintf(`%v != %v
173173
diff (-want +got):
174-
%v
175-
`, argGot, argWant, cmp.Diff(want, got)),
174+
%v`, argGot, argWant, cmp.Diff(want, got)),
176175
}
177176
case reflect.String:
177+
if strings.ContainsAny(v.String(), "\n\r") ||
178+
strings.ContainsAny(reflect.ValueOf(got).String(), "\n\r") {
179+
180+
return ghost.Result{
181+
Ok: false,
182+
Message: fmt.Sprintf(`%v != %v
183+
diff (-want +got):
184+
%v`, argGot, argWant, cmp.Diff(want, got)),
185+
}
186+
}
187+
178188
return ghost.Result{
179189
Ok: false,
180190
Message: fmt.Sprintf(`%v != %v

be/assertions_test.go

+12-16
Original file line numberDiff line numberDiff line change
@@ -339,28 +339,26 @@ want: "foo"
339339
g.Should(be.False(result.Ok))
340340

341341
wantText := `got != want
342-
got: "bar"
343-
want: ` + `
344-
"""
345-
foo
346-
bar
347-
baz
348-
"""
342+
diff (-want +got):
343+
string(
344+
- "foo\nbar\nbaz",
345+
+ "bar",
346+
)
349347
`
348+
result.Message = strings.ReplaceAll(result.Message, "\u00a0", " ")
350349
g.Should(be.Equal(result.Message, wantText))
351350

352351
result = be.Equal("bar", "foo\nbar\nbaz")
353352
g.Should(be.False(result.Ok))
354353

355354
wantText = `"bar" != "foo\nbar\nbaz"
356-
got: "bar"
357-
want: ` + `
358-
"""
359-
foo
360-
bar
361-
baz
362-
"""
355+
diff (-want +got):
356+
string(
357+
- "foo\nbar\nbaz",
358+
+ "bar",
359+
)
363360
`
361+
result.Message = strings.ReplaceAll(result.Message, "\u00a0", " ")
364362
g.Should(be.Equal(result.Message, wantText))
365363
})
366364

@@ -387,7 +385,6 @@ diff (-want +got):
387385
- B: 1,
388386
+ B: 0,
389387
}
390-
391388
`
392389
result.Message = strings.ReplaceAll(result.Message, "\u00a0", " ")
393390
g.Should(be.Equal(result.Message, wantText))
@@ -403,7 +400,6 @@ diff (-want +got):
403400
- B: 1,
404401
+ B: 0,
405402
}
406-
407403
`
408404
result.Message = strings.ReplaceAll(result.Message, "\u00a0", " ")
409405
g.Should(be.Equal(result.Message, wantText))

0 commit comments

Comments
 (0)