refactor(media): normalize inbound media type defaults (#16228)

This commit is contained in:
Peter Steinberger
2026-02-14 15:06:13 +01:00
committed by GitHub
parent e53a221e5c
commit 4b1cadaecb
5 changed files with 212 additions and 53 deletions

View File

@@ -116,6 +116,43 @@ describe("finalizeInboundContext", () => {
finalizeInboundContext(ctx, { forceBodyForCommands: true });
expect(ctx.BodyForCommands).toBe("say hi");
});
it("fills MediaType/MediaTypes defaults only when media exists", () => {
const withMedia: MsgContext = {
Body: "hi",
MediaPath: "/tmp/file.bin",
};
const outWithMedia = finalizeInboundContext(withMedia);
expect(outWithMedia.MediaType).toBe("application/octet-stream");
expect(outWithMedia.MediaTypes).toEqual(["application/octet-stream"]);
const withoutMedia: MsgContext = { Body: "hi" };
const outWithoutMedia = finalizeInboundContext(withoutMedia);
expect(outWithoutMedia.MediaType).toBeUndefined();
expect(outWithoutMedia.MediaTypes).toBeUndefined();
});
it("pads MediaTypes to match MediaPaths/MediaUrls length", () => {
const ctx: MsgContext = {
Body: "hi",
MediaPaths: ["/tmp/a", "/tmp/b"],
MediaTypes: ["image/png"],
};
const out = finalizeInboundContext(ctx);
expect(out.MediaType).toBe("image/png");
expect(out.MediaTypes).toEqual(["image/png", "application/octet-stream"]);
});
it("derives MediaType from MediaTypes when missing", () => {
const ctx: MsgContext = {
Body: "hi",
MediaPath: "/tmp/a",
MediaTypes: ["image/jpeg"],
};
const out = finalizeInboundContext(ctx);
expect(out.MediaType).toBe("image/jpeg");
expect(out.MediaTypes).toEqual(["image/jpeg"]);
});
});
describe("inbound dedupe", () => {