From 812a6db941ad95d46b57203a0551bfb112bea25d Mon Sep 17 00:00:00 2001 From: Rocco Bruyn Date: Sun, 19 Jul 2020 16:53:45 +0200 Subject: [PATCH] Pass 'encoding' param of VFS' readFileSync to 'toString' Fixes #1133 --- lib/virtual-fs.js | 2 +- tests/unit/virtual-fs.spec.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/virtual-fs.js b/lib/virtual-fs.js index 74a8602..619d404 100644 --- a/lib/virtual-fs.js +++ b/lib/virtual-fs.js @@ -16,7 +16,7 @@ class VirtualFileSystem { if (encoding) { // return a string - return typeof data === 'string' ? data : data.toString(); + return typeof data === 'string' ? data : data.toString(encoding); } return new Buffer(data, typeof data === 'string' ? 'base64' : undefined); diff --git a/tests/unit/virtual-fs.spec.js b/tests/unit/virtual-fs.spec.js index 2c4f7d5..3a4611d 100644 --- a/tests/unit/virtual-fs.spec.js +++ b/tests/unit/virtual-fs.spec.js @@ -13,6 +13,17 @@ describe('virtual-fs', function() { fs.fileData = {}; }); + test('readFileSync', function () { + checkMissingFiles(['encoded', 'raw', 'binary']); + + fs.bindFileData({ + 'files/binary': Buffer.from('Buffer content'), + }); + + const base64Data = fs.readFileSync('files/binary', 'base64'); + expect(base64Data).toEqual('QnVmZmVyIGNvbnRlbnQ='); + }); + test('writeFileSync', function() { checkMissingFiles(['encoded', 'raw', 'binary']);