fix(test): use '&' for XML escaping test to support Windows CI

This commit is contained in:
shivanagendrak 2026-01-29 20:36:17 -07:00
parent ab23bd2bd4
commit 11859fb7ee

View File

@ -551,9 +551,8 @@ describe("applyMediaUnderstanding", () => {
const { applyMediaUnderstanding } = await loadApply();
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "moltbot-media-"));
// Create file with XML special characters in the name (what filesystem allows)
// Note: The sanitizeFilename in store.ts would strip most dangerous chars,
// but we test that even if some slip through, they get escaped in output
const filePath = path.join(dir, "file<test>.txt");
// We use '&' because it's valid on all platforms (including Windows) but still requires XML escaping
const filePath = path.join(dir, "file&test.txt");
await fs.writeFile(filePath, "safe content");
const ctx: MsgContext = {
@ -575,10 +574,10 @@ describe("applyMediaUnderstanding", () => {
expect(result.appliedFile).toBe(true);
// Verify XML special chars are escaped in the output
expect(ctx.Body).toContain("&lt;");
expect(ctx.Body).toContain("&gt;");
// The raw < and > should not appear unescaped in the name attribute
expect(ctx.Body).not.toMatch(/name="[^"]*<[^"]*"/);
expect(ctx.Body).toContain("&amp;");
// The raw & should not appear unescaped in the name attribute
expect(ctx.Body).toContain('name="file&amp;test.txt"');
expect(ctx.Body).not.toContain('name="file&test.txt"');
});
it("normalizes MIME types to prevent attribute injection", async () => {