Shane Kilkelly 10 лет назад
Родитель
Сommit
ffb149b923

+ 38 - 1
services/web/test/UnitTests/coffee/ReferencesSearch/ReferencesSearchControllerTests.coffee

@@ -12,7 +12,10 @@ describe "ReferencesSearchController", ->
 		@project_id = '2222'
 		@project_id = '2222'
 		@doc_id = '3333'
 		@doc_id = '3333'
 		@controller = SandboxedModule.require modulePath, requires:
 		@controller = SandboxedModule.require modulePath, requires:
-			'logger-sharelatex': {log: ->}
+			'logger-sharelatex': {
+				log: ->
+				err: ->
+			}
 			'settings-sharelatex': @settings = {
 			'settings-sharelatex': @settings = {
 				apis: {web: {url: 'http://some.url'}}
 				apis: {web: {url: 'http://some.url'}}
 			}
 			}
@@ -57,3 +60,37 @@ describe "ReferencesSearchController", ->
 					@ReferencesSearchHandler.indexFile.calledWith(@project_id, expected_url).should.equal true
 					@ReferencesSearchHandler.indexFile.calledWith(@project_id, expected_url).should.equal true
 					done()
 					done()
 				@controller.indexFile(@req, @res)
 				@controller.indexFile(@req, @res)
+
+		describe 'without a doc_id', ->
+
+			beforeEach ->
+				@req.body = {bad: true}
+
+			it 'should produce a 400 response', (done) ->
+				@res.send = (status) =>
+					status.should.equal 400
+					done()
+				@controller.indexFile(@req, @res)
+
+		describe 'when the ProjectLocator cannot find the doc', ->
+
+			beforeEach ->
+				@req.body = {docId: 'some_weird_id'}
+				@ProjectLocator.findElement.callsArgWith(1, new Error('not found'), null)
+
+			it 'should call ProjectLocator.findElement', (done) ->
+				@res.send = (status) =>
+					@ProjectLocator.findElement.calledOnce.should.equal true
+					arg =
+						project_id: @project_id
+						element_id: @doc_id,
+						type: 'doc'
+					@ProjectLocator.findElement.calledWith(arg).should.equal true
+					done()
+				@controller.indexFile(@req, @res)
+
+			it 'should produce a 500 response', (done) ->
+				@res.send = (status) =>
+					status.should.equal 500
+					done()
+				@controller.indexFile(@req, @res)