From ffb149b923480c198f69863a573e930baf691248 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Wed, 30 Dec 2015 16:15:31 +0000 Subject: [PATCH] Test failure conditions. --- .../ReferencesSearchControllerTests.coffee | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/services/web/test/UnitTests/coffee/ReferencesSearch/ReferencesSearchControllerTests.coffee b/services/web/test/UnitTests/coffee/ReferencesSearch/ReferencesSearchControllerTests.coffee index 9ce4ea79a0..5cb911e870 100644 --- a/services/web/test/UnitTests/coffee/ReferencesSearch/ReferencesSearchControllerTests.coffee +++ b/services/web/test/UnitTests/coffee/ReferencesSearch/ReferencesSearchControllerTests.coffee @@ -12,7 +12,10 @@ describe "ReferencesSearchController", -> @project_id = '2222' @doc_id = '3333' @controller = SandboxedModule.require modulePath, requires: - 'logger-sharelatex': {log: ->} + 'logger-sharelatex': { + log: -> + err: -> + } 'settings-sharelatex': @settings = { apis: {web: {url: 'http://some.url'}} } @@ -57,3 +60,37 @@ describe "ReferencesSearchController", -> @ReferencesSearchHandler.indexFile.calledWith(@project_id, expected_url).should.equal true done() @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)