add cooldown to tpds mergeUpdate path
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
SandboxedModule = require('sandboxed-module')
|
||||
sinon = require('sinon')
|
||||
require('chai').should()
|
||||
expect = require('chai').expect
|
||||
modulePath = require('path').join __dirname, '../../../../app/js/Features/ThirdPartyDataStore/TpdsUpdateHandler.js'
|
||||
|
||||
describe 'TpdsUpdateHandler', ->
|
||||
@@ -19,6 +20,8 @@ describe 'TpdsUpdateHandler', ->
|
||||
@rootDocManager = setRootDocAutomatically:sinon.stub()
|
||||
@FileTypeManager =
|
||||
shouldIgnore: sinon.stub().callsArgWith(1, null, false)
|
||||
@CooldownManager =
|
||||
isProjectOnCooldown: sinon.stub().callsArgWith(1, null, false)
|
||||
@handler = SandboxedModule.require modulePath, requires:
|
||||
'./UpdateMerger': @updateMerger
|
||||
'./Editor/EditorController': @editorController
|
||||
@@ -27,6 +30,7 @@ describe 'TpdsUpdateHandler', ->
|
||||
'../Project/ProjectDeleter': @projectDeleter
|
||||
"../Project/ProjectRootDocManager" : @rootDocManager
|
||||
'../Uploads/FileTypeManager': @FileTypeManager
|
||||
'../Cooldown/CooldownManager': @CooldownManager
|
||||
'logger-sharelatex': log:->
|
||||
@user_id = "dsad29jlkjas"
|
||||
@source = "dropbox"
|
||||
@@ -67,6 +71,38 @@ describe 'TpdsUpdateHandler', ->
|
||||
@updateMerger.mergeUpdate.called.should.equal false
|
||||
done()
|
||||
|
||||
it 'should check if the project is on cooldown', (done) ->
|
||||
@CooldownManager.isProjectOnCooldown = sinon.stub().callsArgWith(1, null, false)
|
||||
@projectLocator.findUsersProjectByName = sinon.stub().callsArgWith(2)
|
||||
path = "/path/here"
|
||||
update = {}
|
||||
@updateMerger.mergeUpdate = sinon.stub()
|
||||
@updateMerger.mergeUpdate.withArgs(@user_id, @project_id, path, update, @source).callsArg(5)
|
||||
@handler.newUpdate @user_id, @project.name, path, update, @source, (err) =>
|
||||
expect(err).to.be.oneOf [null, undefined]
|
||||
@CooldownManager.isProjectOnCooldown.callCount.should.equal 1
|
||||
@CooldownManager.isProjectOnCooldown.calledWith(@project_id).should.equal true
|
||||
@FileTypeManager.shouldIgnore.callCount.should.equal 1
|
||||
@updateMerger.mergeUpdate.callCount.should.equal 1
|
||||
done()
|
||||
|
||||
it 'should return error and not proceed with update if project is on cooldown', (done) ->
|
||||
@CooldownManager.isProjectOnCooldown = sinon.stub().callsArgWith(1, null, true)
|
||||
@projectLocator.findUsersProjectByName = sinon.stub().callsArgWith(2)
|
||||
@FileTypeManager.shouldIgnore = sinon.stub().callsArgWith(1, null, false)
|
||||
path = "/path/here"
|
||||
update = {}
|
||||
@updateMerger.mergeUpdate = sinon.stub()
|
||||
@updateMerger.mergeUpdate.withArgs(@user_id, @project_id, path, update, @source).callsArg(5)
|
||||
@handler.newUpdate @user_id, @project.name, path, update, @source, (err) =>
|
||||
expect(err).to.not.be.oneOf [null, undefined]
|
||||
expect(err).to.be.instanceof Error
|
||||
@CooldownManager.isProjectOnCooldown.callCount.should.equal 1
|
||||
@CooldownManager.isProjectOnCooldown.calledWith(@project_id).should.equal true
|
||||
@FileTypeManager.shouldIgnore.callCount.should.equal 0
|
||||
@updateMerger.mergeUpdate.callCount.should.equal 0
|
||||
done()
|
||||
|
||||
describe 'getting a delete :', ->
|
||||
it 'should call deleteEntity in the collaberation manager', (done)->
|
||||
path = "/delete/this"
|
||||
|
||||
Reference in New Issue
Block a user