set userId when deleting entities via the tpds
This commit is contained in:
@@ -47,7 +47,7 @@ module.exports =
|
||||
logger.log user_id:user_id, filePath:path, projectName:projectName, project_id:project._id, "project found for delete update, path is root so marking project as deleted"
|
||||
return projectDeleter.markAsDeletedByExternalSource project._id, callback
|
||||
else
|
||||
updateMerger.deleteUpdate project._id, path, source, (err)->
|
||||
updateMerger.deleteUpdate user_id, project._id, path, source, (err)->
|
||||
callback(err)
|
||||
|
||||
|
||||
|
||||
@@ -32,13 +32,13 @@ module.exports =
|
||||
else
|
||||
self.p.processDoc project_id, elementId, user_id, fsPath, path, source, callback
|
||||
|
||||
deleteUpdate: (project_id, path, source, callback)->
|
||||
deleteUpdate: (user_id, project_id, path, source, callback)->
|
||||
projectLocator.findElementByPath project_id, path, (err, element, type)->
|
||||
if err? || !element?
|
||||
logger.log element:element, project_id:project_id, path:path, "could not find entity for deleting, assuming it was already deleted"
|
||||
return callback()
|
||||
logger.log project_id:project_id, path:path, type:type, element:element, "processing update to delete entity from tpds"
|
||||
editorController.deleteEntity project_id, element._id, type, source, (err)->
|
||||
editorController.deleteEntity project_id, element._id, type, source, user_id, (err)->
|
||||
logger.log project_id:project_id, path:path, "finished processing update to delete entity from tpds"
|
||||
callback()
|
||||
|
||||
|
||||
@@ -422,3 +422,25 @@ describe "ProjectStructureChanges", ->
|
||||
done()
|
||||
|
||||
image_file.pipe(req)
|
||||
|
||||
it "should version deleting a doc", (done) ->
|
||||
req = @owner.request.delete {
|
||||
uri: "/user/#{@owner._id}/update/#{@tpds_project_name}/test.tex",
|
||||
auth:
|
||||
user: _.keys(Settings.httpAuthUsers)[0]
|
||||
pass: _.values(Settings.httpAuthUsers)[0]
|
||||
sendImmediately: true
|
||||
}, (error, res, body) =>
|
||||
throw error if error?
|
||||
if res.statusCode < 200 || res.statusCode >= 300
|
||||
throw new Error("failed to delete doc #{res.statusCode}")
|
||||
|
||||
updates = MockDocUpdaterApi.getProjectStructureUpdates(@tpds_project_id).docUpdates
|
||||
expect(updates.length).to.equal(1)
|
||||
update = updates[0]
|
||||
expect(update.userId).to.equal(@owner._id)
|
||||
expect(update.pathname).to.equal("/test.tex")
|
||||
expect(update.newPathname).to.equal("")
|
||||
|
||||
done()
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ describe 'TpdsUpdateHandler', ->
|
||||
beforeEach ->
|
||||
@requestQueuer = {}
|
||||
@updateMerger =
|
||||
deleteUpdate: (user_id, path, source, cb)->cb()
|
||||
deleteUpdate: (user_id, project_id, path, source, cb)->cb()
|
||||
mergeUpdate:(user_id, project_id, path, update, source, cb)->cb()
|
||||
@editorController = {}
|
||||
@project_id = "dsjajilknaksdn"
|
||||
@@ -107,11 +107,13 @@ describe 'TpdsUpdateHandler', ->
|
||||
it 'should call deleteEntity in the collaberation manager', (done)->
|
||||
path = "/delete/this"
|
||||
update = {}
|
||||
@updateMerger.deleteUpdate = sinon.stub().callsArg(3)
|
||||
@updateMerger.deleteUpdate = sinon.stub().callsArg(4)
|
||||
|
||||
@handler.deleteUpdate @user_id, @project.name, path, @source, =>
|
||||
@projectDeleter.markAsDeletedByExternalSource.calledWith(@project._id).should.equal false
|
||||
@updateMerger.deleteUpdate.calledWith(@project_id, path, @source).should.equal true
|
||||
@updateMerger.deleteUpdate
|
||||
.calledWith(@user_id, @project_id, path, @source)
|
||||
.should.equal true
|
||||
done()
|
||||
|
||||
it 'should mark the project as deleted by external source if path is a single slash', (done)->
|
||||
|
||||
@@ -145,13 +145,13 @@ describe 'UpdateMerger :', ->
|
||||
|
||||
it 'should get the element id', ->
|
||||
@projectLocator.findElementByPath = sinon.spy()
|
||||
@updateMerger.deleteUpdate @project_id, @path, @source, ->
|
||||
@updateMerger.deleteUpdate @user_id, @project_id, @path, @source, ->
|
||||
@projectLocator.findElementByPath.calledWith(@project_id, @path).should.equal true
|
||||
|
||||
it 'should delete the entity in the editor controller with the correct type', (done)->
|
||||
@entity.lines = []
|
||||
mock = sinon.mock(@editorController).expects("deleteEntity").withArgs(@project_id, @entity_id, @type, @source).callsArg(4)
|
||||
@updateMerger.deleteUpdate @project_id, @path, @source, ->
|
||||
mock = sinon.mock(@editorController).expects("deleteEntity").withArgs(@project_id, @entity_id, @type, @source, @user_id).callsArg(5)
|
||||
@updateMerger.deleteUpdate @user_id, @project_id, @path, @source, ->
|
||||
mock.verify()
|
||||
done()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user