|
@@ -39,6 +39,8 @@ describe "S3PersistorManagerTests", ->
|
|
|
"logger-sharelatex":
|
|
"logger-sharelatex":
|
|
|
log:->
|
|
log:->
|
|
|
err:->
|
|
err:->
|
|
|
|
|
+ "./Errors": @Errors =
|
|
|
|
|
+ NotFoundError: sinon.stub()
|
|
|
@key = "my/key"
|
|
@key = "my/key"
|
|
|
@bucketName = "my-bucket"
|
|
@bucketName = "my-bucket"
|
|
|
@error = "my errror"
|
|
@error = "my errror"
|
|
@@ -108,44 +110,50 @@ describe "S3PersistorManagerTests", ->
|
|
|
|
|
|
|
|
describe "error conditions", ->
|
|
describe "error conditions", ->
|
|
|
|
|
|
|
|
- beforeEach ->
|
|
|
|
|
- @fakeResponse =
|
|
|
|
|
- statusCode: 500
|
|
|
|
|
- @stubbedKnoxClient.get.returns(
|
|
|
|
|
- on: (key, callback) =>
|
|
|
|
|
- if key == 'response'
|
|
|
|
|
- callback(@fakeResponse)
|
|
|
|
|
- end: ->
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
describe "when the file doesn't exist", ->
|
|
describe "when the file doesn't exist", ->
|
|
|
|
|
|
|
|
beforeEach ->
|
|
beforeEach ->
|
|
|
- @bucketName = "mybucket"
|
|
|
|
|
- @key = "somekey"
|
|
|
|
|
- @fakeResponse.statusCode = 404
|
|
|
|
|
|
|
+ @fakeResponse =
|
|
|
|
|
+ statusCode: 404
|
|
|
|
|
+ @stubbedKnoxClient.get.returns(
|
|
|
|
|
+ on: (key, callback) =>
|
|
|
|
|
+ if key == 'response'
|
|
|
|
|
+ callback(@fakeResponse)
|
|
|
|
|
+ end: ->
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
it "should produce a NotFoundError", (done) ->
|
|
it "should produce a NotFoundError", (done) ->
|
|
|
@S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback
|
|
@S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback
|
|
|
expect(stream).to.equal null
|
|
expect(stream).to.equal null
|
|
|
expect(err).to.not.equal null
|
|
expect(err).to.not.equal null
|
|
|
- expect(err.name == "NotFoundError").to.equal true
|
|
|
|
|
|
|
+ expect(err instanceof @Errors.NotFoundError).to.equal true
|
|
|
done()
|
|
done()
|
|
|
|
|
|
|
|
it "should have bucket and key in the Error message", (done) ->
|
|
it "should have bucket and key in the Error message", (done) ->
|
|
|
@S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback
|
|
@S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback
|
|
|
- expect(err.message).to.not.equal null
|
|
|
|
|
- err.message.should.match(new RegExp(".*#{@bucketName}.*"))
|
|
|
|
|
- err.message.should.match(new RegExp(".*#{@key}.*"))
|
|
|
|
|
|
|
+ error_message = @Errors.NotFoundError.lastCall.args[0]
|
|
|
|
|
+ expect(error_message).to.not.equal null
|
|
|
|
|
+ error_message.should.match(new RegExp(".*#{@bucketName}.*"))
|
|
|
|
|
+ error_message.should.match(new RegExp(".*#{@key}.*"))
|
|
|
done()
|
|
done()
|
|
|
|
|
|
|
|
describe "when the S3 service produces an error", ->
|
|
describe "when the S3 service produces an error", ->
|
|
|
|
|
+ beforeEach ->
|
|
|
|
|
+ @fakeResponse =
|
|
|
|
|
+ statusCode: 500
|
|
|
|
|
+ @stubbedKnoxClient.get.returns(
|
|
|
|
|
+ on: (key, callback) =>
|
|
|
|
|
+ if key == 'response'
|
|
|
|
|
+ callback(@fakeResponse)
|
|
|
|
|
+ end: ->
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
it "should produce an error", (done) ->
|
|
it "should produce an error", (done) ->
|
|
|
@S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback
|
|
@S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback
|
|
|
expect(stream).to.equal null
|
|
expect(stream).to.equal null
|
|
|
expect(err).to.not.equal null
|
|
expect(err).to.not.equal null
|
|
|
expect(err instanceof Error).to.equal true
|
|
expect(err instanceof Error).to.equal true
|
|
|
|
|
+ @Errors.NotFoundError.called.should.equal false
|
|
|
done()
|
|
done()
|
|
|
|
|
|
|
|
describe "sendFile", ->
|
|
describe "sendFile", ->
|
|
@@ -308,4 +316,4 @@ describe "S3PersistorManagerTests", ->
|
|
|
@stubbedKnoxClient.list.callsArgWith(1, null, data)
|
|
@stubbedKnoxClient.list.callsArgWith(1, null, data)
|
|
|
@S3PersistorManager.directorySize @bucketName, @key, (err, totalSize)=>
|
|
@S3PersistorManager.directorySize @bucketName, @key, (err, totalSize)=>
|
|
|
totalSize.should.equal 3072
|
|
totalSize.should.equal 3072
|
|
|
- done()
|
|
|
|
|
|
|
+ done()
|