You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to write a custom assertion that compares two strings for equality, highlighting their differences. For example, writing
val s = "My relatively long string with a difference in the middle"
"verify" - {
verify(s).equals("My relatively long string With a difference in the middle")
}
to produce '...long string [w]ith a differ...' != '...long string [W]ith a differ...' is not hard with uTest out of the box.
However, I'd really like the [w] and [W] to be set in red using the fansi library. I can do that now by passing a fansi-formatted string to the exception AND setting exceptionMsgColor = Attrs.Empty. However, that means that all the rest of the error messages are uncoloured.
I propose adding a marker trait, FansiErrorMarker to the utest. In formatException, test for that trait and, if present, print the message unchanged. Otherwise apply the usual exception message colour:
current.getMessage match {
case null => exCls
case nonNull =>
current match {
case e: FansiErrorMarker ⇒ ufansi.Str.join(exCls, ": ", nonNull)
case e ⇒ ufansi.Str.join(exCls, ": ", exceptionMsgColor(nonNull))
}
},
Then users can throw new AssertionError(fansiMsg) with FansiErrorMarker with their fansi-formatted message in a backwards compatible way.
Would the maintainers welcome a pull request with these changes?
The text was updated successfully, but these errors were encountered:
I'd like to write a custom assertion that compares two strings for equality, highlighting their differences. For example, writing
to produce
'...long string [w]ith a differ...' != '...long string [W]ith a differ...'
is not hard with uTest out of the box.However, I'd really like the
[w]
and[W]
to be set in red using the fansi library. I can do that now by passing a fansi-formatted string to the exception AND settingexceptionMsgColor = Attrs.Empty
. However, that means that all the rest of the error messages are uncoloured.I propose adding a marker trait,
FansiErrorMarker
to the utest. In formatException, test for that trait and, if present, print the message unchanged. Otherwise apply the usual exception message colour:Then users can
throw new AssertionError(fansiMsg) with FansiErrorMarker
with their fansi-formatted message in a backwards compatible way.Would the maintainers welcome a pull request with these changes?
The text was updated successfully, but these errors were encountered: