From 0452f787b24a72d47afae6c330470fb424178901 Mon Sep 17 00:00:00 2001 From: Adam Boudj Date: Fri, 6 Mar 2026 16:45:43 +0100 Subject: [PATCH] fix(partUtils): display media type and size for inline data parts (#21358) --- packages/core/src/utils/partUtils.test.ts | 16 ++++++++++++++-- packages/core/src/utils/partUtils.ts | 13 ++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/packages/core/src/utils/partUtils.test.ts b/packages/core/src/utils/partUtils.test.ts index d530107257..5a8130c97c 100644 --- a/packages/core/src/utils/partUtils.test.ts +++ b/packages/core/src/utils/partUtils.test.ts @@ -123,7 +123,19 @@ describe('partUtils', () => { it('should return descriptive string for inlineData part', () => { const part = { inlineData: { mimeType: 'image/png', data: '' } } as Part; - expect(partToString(part, verboseOptions)).toBe(''); + expect(partToString(part, verboseOptions)).toBe( + '[Image: image/png, 0.0 KB]', + ); + }); + + it('should show size for inlineData with non-empty base64 data', () => { + // 4 base64 chars → ceil(4*3/4) = 3 bytes → 3/1024 ≈ 0.0 KB + const part = { + inlineData: { mimeType: 'audio/mp3', data: 'AAAA' }, + } as Part; + expect(partToString(part, verboseOptions)).toBe( + '[Audio: audio/mp3, 0.0 KB]', + ); }); it('should return an empty string for an unknown part type', () => { @@ -142,7 +154,7 @@ describe('partUtils', () => { ], ]; expect(partToString(parts as Part, verboseOptions)).toBe( - 'start middle[Function Call: func1] end