Skip to content

Conversation

@nyarthan
Copy link

@nyarthan nyarthan commented Jun 30, 2025

jsdom is quite a heavy library just to parse some XML content. (2.7MB minified) This replaces it with the parser of fast-xml-parser.

Since the result is a plain JS Object instead of a DOM node, we can also use the corresponding XMLBuilder.

The resulting XML is formatted differently (no empty lines between sibling tags), hence the failing tests. Since the previous solution also did not preserve formatting I think this is a reasonable side-effect. But I'm curious how this should be handled.

@TimothyJones
Copy link
Member

Hi! Thanks for this, and apologies for the delay.

Probably we should run the xml through a formatter before testing to avoid this kind of issue in the future.

The easy option here is we can just update the snapshots - I don't think the specific format should be part of the contract of the library.

@nyarthan
Copy link
Author

Hi! Thanks for this, and apologies for the delay.

Probably we should run the xml through a formatter before testing to avoid this kind of issue in the future.

The easy option here is we can just update the snapshots - I don't think the specific format should be part of the contract of the library.

Thanks for the feedback - I updated the format of the fixtures.
I also think having formatters in/before the tests would make sense but it seems to me to be out of scope for this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants