diff --git a/src/vs/base/test/common/buffer.test.ts b/src/vs/base/test/common/buffer.test.ts index f4d9c5a04e4..9109d4cdb1b 100644 --- a/src/vs/base/test/common/buffer.test.ts +++ b/src/vs/base/test/common/buffer.test.ts @@ -19,6 +19,20 @@ suite('Buffer', () => { assert.deepStrictEqual(buffer.toString(), 'hi'); }); + test('issue #251527 - VSBuffer#toString preserves BOM character in filenames', () => { + // BOM character (U+FEFF) is a zero-width character that was being stripped + // when deserializing messages in the IPC layer. This test verifies that + // the BOM character is preserved when using VSBuffer.toString(). + const bomChar = '\uFEFF'; + const filename = `${bomChar}c.txt`; + const buffer = VSBuffer.fromString(filename); + const result = buffer.toString(); + + // Verify the BOM character is preserved + assert.strictEqual(result, filename); + assert.strictEqual(result.charCodeAt(0), 0xFEFF); + }); + test('bufferToReadable / readableToBuffer', () => { const content = 'Hello World'; const readable = bufferToReadable(VSBuffer.fromString(content));