Closed JCook21 closed 3 weeks ago
Happy to join you on a Zoom call to look into this. I don't have a unit test yet but I can look to add one today.
I'm wondering if a similar approach to JsonJacksonApprovals
would work here too.
Added a draft pull request #473 with a couple of tests to show the discrepancies I'm seeing. Strangely, I couldn't verify that &
is being converted to &
, even though I saw this in my own codebase a few weeks ago.
Please send an email to llewellyn.falco@gmail.com and he'll forward you the invite for our next session. Looking forward to it!
hey Jeremy,
it's been a while but tonight we worked on it. It's tricky. A suggested workaround is to write this line of code:
public void verifyJacksonXml(String xml) {
Approvals.verify(prettyPrintWithJackson(xml), new Options().forFile().withExtension(".xml"));
}
where you have to implement the prettyPrintWithJackson
still yourself.
We'll get back to it in a week, if you want to join us, let us know.
hey @JCook21
we think we fixed this by using XOM. But we also created a seam so that you can pass your own xml pretty printer that Approvals will use.
If you get it working with jackson as the pretty printer, we'd love if you'd contribute it back! (we weren't able to when we tried) :)
We're publishing a new release now that contains XmlXomApprovals.verifyXml()
and Approvals.verifyXml(xml, prettyPrinter)
I'm working with Jackson to generate some XML that I'd like to then approve with the
verifyXml()
method. Jackson takes care of escaping special characters in the XML but doesn't pretty print it. I'm finding some inconsistencies with how Approvals then formats the XML:&
but Approvals then changes this to&amp
.Do you have any comments on this? Is it possible to just apply formatting to the XML string that adds line breaks and indents but without further formatting the content?