From d88736e3b5a904b7509ef26a09f4edfb3016c61c Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 27 Aug 2015 16:12:11 +0100 Subject: [PATCH] Pass the `start` and `end` options down to `fs.createReadStream`, and test for same. --- .../app/coffee/FSPersistorManager.coffee | 2 +- .../coffee/FSPersistorManagerTests.coffee | 21 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/services/filestore/app/coffee/FSPersistorManager.coffee b/services/filestore/app/coffee/FSPersistorManager.coffee index 719dd1d098..283d773e88 100644 --- a/services/filestore/app/coffee/FSPersistorManager.coffee +++ b/services/filestore/app/coffee/FSPersistorManager.coffee @@ -33,7 +33,7 @@ module.exports = _callback = () -> filteredName = filterName name logger.log location:location, name:filteredName, "getting file" - sourceStream = fs.createReadStream "#{location}/#{filteredName}" + sourceStream = fs.createReadStream "#{location}/#{filteredName}", opts sourceStream.on 'error', (err) -> logger.err err:err, location:location, name:name, "Error reading from file" if err.code = 'ENOENT' diff --git a/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee b/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee index 786f6be323..1668b0ff9d 100644 --- a/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee +++ b/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee @@ -69,14 +69,27 @@ describe "FSPersistorManagerTests", -> done() describe "getFileStream", -> + beforeEach -> + @opts = {} + it "should use correct file location", (done) -> - @Fs.createReadStream.returns( - on:-> - ) - @FSPersistorManager.getFileStream @location, @name1, (err,res)=> + @Fs.createReadStream.returns({on: ->}) + @FSPersistorManager.getFileStream @location, @name1, @opts, (err,res) => @Fs.createReadStream.calledWith("#{@location}/#{@name1Filtered}").should.equal.true done() + describe "with start and end options", -> + + beforeEach -> + @opts = {start: 0, end: 8} + + it 'should pass the options to createReadStream', (done) -> + @Fs.createReadStream.returns({on: ->}) + @FSPersistorManager.getFileStream @location, @name1, @opts, (err,res)=> + @Fs.createReadStream.calledWith("#{@location}/#{@name1Filtered}", @opts).should.equal true + done() + + describe "copyFile", -> beforeEach -> @ReadStream=