Skip to content

Commit 41e1b26

Browse files
margocrawfwilliammartin
authored andcommitted
display special chars on error
previously, special chars would be rendered via the terminal making it difficult to see errors use %q to safely display special chars on the terminal this addresses issue #328 Signed-off-by: Paul Nikonowicz <pnikonowicz@pivotal.io> Signed-off-by: Margo Crawford <margaretmcrawf@gmail.com> Signed-off-by: Paul Nikonowicz <pnikonowicz@pivotal.io>
1 parent 5c249dc commit 41e1b26

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

format/format.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,18 @@ func MessageWithDiff(actual, message, expected string) string {
9797
padding := strings.Repeat(" ", spaceFromMessageToActual+spacesBeforeFormattedMismatch) + "|"
9898
return Message(formattedActual, message+padding, formattedExpected)
9999
}
100+
101+
actual = escapedWithGoSyntax(actual)
102+
expected = escapedWithGoSyntax(expected)
103+
100104
return Message(actual, message, expected)
101105
}
102106

107+
func escapedWithGoSyntax(str string) string {
108+
withQuotes := fmt.Sprintf("%q", str)
109+
return withQuotes[1 : len(withQuotes)-1]
110+
}
111+
103112
func truncateAndFormat(str string, index int) string {
104113
leftPadding := `...`
105114
rightPadding := `...`

format/format_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,13 @@ var _ = Describe("Format", func() {
167167
Expect(MessageWithDiff(stringA, "to equal", stringB)).Should(Equal(expectedTruncatedMultiByteFailureMessage))
168168
})
169169

170+
It("prints special characters", func() {
171+
stringA := "\n"
172+
stringB := "something_else"
173+
174+
Expect(MessageWithDiff(stringA, "to equal", stringB)).Should(Equal(expectedSpecialCharacterFailureMessage))
175+
})
176+
170177
Context("With truncated diff disabled", func() {
171178
BeforeEach(func() {
172179
TruncatedDiff = false
@@ -625,3 +632,11 @@ Expected
625632
to equal
626633
<string>: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
627634
`)
635+
636+
var expectedSpecialCharacterFailureMessage = strings.TrimSpace(`
637+
Expected
638+
<string>: \n
639+
to equal
640+
<string>: something_else
641+
642+
`)

0 commit comments

Comments
 (0)