Stream files into zip in series

This commit is contained in:
James Allen 2014-05-16 11:26:58 +01:00
parent e9c164dc73
commit 2104c69cb9
2 changed files with 7 additions and 3 deletions

View file

@ -46,5 +46,6 @@ module.exports = ProjectZipStreamManager =
return callback(err)
path = path.slice(1) if path[0] == "/"
archive.append stream, name: path
callback()
stream.on "end", () ->
callback()
async.series jobs, callback

View file

@ -4,6 +4,7 @@ should = chai.should()
expect = chai.expect
modulePath = "../../../../app/js/Features/Downloads/ProjectZipStreamManager.js"
SandboxedModule = require('sandboxed-module')
EventEmitter = require("events").EventEmitter
describe "ProjectZipStreamManager", ->
beforeEach ->
@ -112,14 +113,16 @@ describe "ProjectZipStreamManager", ->
"/folder/picture.png":
_id: "file-id-2"
@streams =
"file-id-1" : "stream-mock-1"
"file-id-2" : "stream-mock-2"
"file-id-1" : new EventEmitter()
"file-id-2" : new EventEmitter()
@ProjectEntityHandler.getAllFiles = sinon.stub().callsArgWith(1, null, @files)
@archive.append = sinon.stub()
@FileStoreHandler.getFileStream = (project_id, file_id, {}, callback) =>
callback null, @streams[file_id]
sinon.spy @FileStoreHandler, "getFileStream"
@ProjectZipStreamManager.addAllFilesToArchive @project_id, @archive, @callback
for path, stream of @streams
stream.emit "end"
it "should get the files for the project", ->
@ProjectEntityHandler.getAllFiles.calledWith(@project_id).should.equal true