eCourt-Doc-Edit/backend/WordVersioning.Api.IntegrationTests
Suphonchai Phoonsawat b9b227926d Hotfix: strip invalid XML control chars from field values (FR-16)
ผู้ใช้ paste ข้อความที่มี vertical tab (0x0B) เข้าฟอร์ม — XML 1.0 ห้าม
อักขระนี้ ทำให้ XmlWriter โยน ArgumentException ตอน save package และ
หลุดเป็น 500 stack เต็มจอ (catch เดิมครอบแค่ OpenXmlPackageException)

- DocxGenerationService.SanitizeForXml: ตัดอักขระที่ XML 1.0 ห้าม
  (0x00–0x1F ยกเว้น tab/LF/CR, lone surrogate, 0xFFFE/0xFFFF — คู่
  surrogate ครบ เช่น อีโมจิ คงไว้) ที่จุดเขียนค่าทั้งสองของ
  ReplaceSdtContent → ครอบทั้ง generate และ generate-draft
- Controllers: broad catch (ยกเว้น cancellation) → 502 ข้อความอ่านออก
  แทน 500 ดิบ สำหรับ exception ที่ไม่ได้ตั้งใจจาก OpenXML
- Test: Draft_ValueWithInvalidXmlControlChars_IsStrippedNot500 (draft +
  generate v0) — reviewer พิสูจน์แล้วว่า fail จริงบนโค้ดก่อนแก้
- backend 85/85; QA reviewer PASS (1 round, minors 3: แก้ 1 ปฏิเสธ 2
  พร้อมเหตุผล — บันทึกใน acceptance-review.md)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-10 12:07:50 +07:00
..
Fixtures Phase 7-8 2026-08-20 13:51:42 +07:00
AuthTests.cs Phase 12: draft generation (FR-16) 2026-09-10 10:51:13 +07:00
DraftTests.cs Hotfix: strip invalid XML control chars from field values (FR-16) 2026-09-10 12:07:50 +07:00
FieldEditorTests.cs Phase 10: field editor (FR-14) 2026-08-22 09:17:15 +07:00
FieldSyncTests.cs Phase 11: version PDF (FR-15) 2026-09-08 14:01:13 +07:00
GenerateTests.cs Phase 12 v9: draft opens in Word + Thai word-breaking fix (FR-16) 2026-09-10 11:49:16 +07:00
IntegrationTestFixture.cs Phase 12 v9: draft opens in Word + Thai word-breaking fix (FR-16) 2026-09-10 11:49:16 +07:00
TemplateLinkingTests.cs Phase 12: draft generation (FR-16) 2026-09-10 10:51:13 +07:00
TemplateTests.cs Phase 10: field editor (FR-14) 2026-08-22 09:17:15 +07:00
TestDocx.cs Phase 12 v9: draft opens in Word + Thai word-breaking fix (FR-16) 2026-09-10 11:49:16 +07:00
TestDtos.cs Phase 12 v9: draft opens in Word + Thai word-breaking fix (FR-16) 2026-09-10 11:49:16 +07:00
TestFlow.cs Phase 9: version message (FR-13) 2026-08-20 22:05:49 +07:00
UploadVersionTests.cs Phase 7-8 2026-08-20 13:51:42 +07:00
VersionMessageTests.cs Phase 11: version PDF (FR-15) 2026-09-08 14:01:13 +07:00
VersionPdfTests.cs Phase 12 v9: draft opens in Word + Thai word-breaking fix (FR-16) 2026-09-10 11:49:16 +07:00
WordVersioning.Api.IntegrationTests.csproj Phase 7-8 2026-08-20 13:51:42 +07:00