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']);