fix(test): emit well-formed JUnit XML for replay results - #2477
Open
PLASMA-FR wants to merge 1 commit into
Open
Conversation
Member
|
No code findings at 7664552. The XML replacement and whitespace escaping stay at the JUnit boundary, with regression coverage for round-tripping and unchanged suite values. The iOS smoke failure cannot find automation-longpress after scrolling and appears unrelated to report serialization; ready for human review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Complete the existing JUnit reporting workflow from #936 and #1550. Replay results containing ESC, NUL or U+FFFF currently produce XML that standard parsers reject; literal attribute whitespace also changes during parsing.
The JUnit presentation boundary now replaces XML 1.0-forbidden characters with U+FFFD and preserves legal whitespace using character references. Original JSON/custom-reporter values and suite exit codes stay intact. Five files cover serialization, regressions, CLI help, documentation and changelog.
agent-device test ./flows --reporter junit:./junit.xml --jsonValidation
Tested
76645521f9b977b837c6b6aa4dded73c9c7a27f0with Node 24.13.1 and pnpm 11.17.0.pnpm buildpasses.AGENT_DEVICE_VITEST_MAX_WORKERS=1 pnpm check:affected --runpasses all runnable gates: 2,783 tests / 381 files plus format, lint, types, layering, Fallow and build.This is local report serialization; no device behavior changes. GitHub CI is pending.