Bläddra i källkod

Merge pull request #1102 from sharelatex/mm-ensure-history-before-export

Ensure project has history before exporting

GitOrigin-RevId: 688131fbbca1cd339433d3b9be57a03a32303b3e
Jessica Lawshe 8 år sedan
förälder
incheckning
49acb719db

+ 4 - 1
services/web/app/coffee/Features/Exports/ExportsHandler.coffee

@@ -1,4 +1,5 @@
 ProjectGetter = require('../Project/ProjectGetter')
+ProjectHistoryHandler = require('../Project/ProjectHistoryHandler')
 ProjectLocator = require('../Project/ProjectLocator')
 ProjectRootDocManager = require('../Project/ProjectRootDocManager')
 UserGetter = require('../User/UserGetter')
@@ -35,7 +36,9 @@ module.exports = ExportsHandler = self =
 			user: (cb) ->
 				UserGetter.getUser user_id, {first_name: 1, last_name: 1, email: 1, overleaf: 1}, cb
 			historyVersion: (cb) ->
-				self._requestVersion project_id, cb
+				ProjectHistoryHandler.ensureHistoryExistsForProject project_id, (error) ->
+					return callback(error) if error?
+					self._requestVersion project_id, cb
 
 		async.auto jobs, (err, results) ->
 			if err?

+ 0 - 1
services/web/app/coffee/Features/Project/ProjectHistoryHandler.coffee

@@ -19,7 +19,6 @@ module.exports = ProjectHistoryHandler =
 	getHistoryId: (project_id, callback = (err, result) ->) ->
 		ProjectDetailsHandler.getDetails project_id, (err, project) ->
 			return callback(err) if err? # n.b. getDetails returns an error if the project doesn't exist
-			return callback(new Error("history exists")) if project.overleaf?.history?.id?
 			callback(null, project?.overleaf?.history?.id)
 
 	ensureHistoryExistsForProject: (project_id, callback = (err) ->) ->

+ 6 - 0
services/web/test/unit/coffee/Exports/ExportsHandlerTests.coffee

@@ -15,6 +15,7 @@ describe 'ExportsHandler', ->
 				log: ->
 				err: ->
 			'../Project/ProjectGetter': @ProjectGetter = {}
+			'../Project/ProjectHistoryHandler': @ProjectHistoryHandler = {}
 			'../Project/ProjectLocator': @ProjectLocator = {}
 			'../Project/ProjectRootDocManager': @ProjectRootDocManager = {}
 			'../User/UserGetter': @UserGetter = {}
@@ -101,6 +102,7 @@ describe 'ExportsHandler', ->
 			@rootDocPath = 'main.tex'
 			@historyVersion = 777
 			@ProjectGetter.getProject = sinon.stub().yields(null, @project)
+			@ProjectHistoryHandler.ensureHistoryExistsForProject = sinon.stub().yields(null)
 			@ProjectLocator.findRootDoc = sinon.stub().yields(null, [null, {fileSystem: 'main.tex'}])
 			@ProjectRootDocManager.ensureRootDocumentIsSet = sinon.stub().callsArgWith(1, null)
 			@UserGetter.getUser = sinon.stub().yields(null, @user)
@@ -113,6 +115,10 @@ describe 'ExportsHandler', ->
 					@callback(error, export_data)
 					done()
 
+			it "should ensure the project has history", ->
+				@ProjectHistoryHandler.ensureHistoryExistsForProject.called
+				.should.equal true
+
 			it "should request the project history version", ->
 				@ExportsHandler._requestVersion.called
 				.should.equal true