|
|
@@ -0,0 +1,77 @@
|
|
|
+SandboxedModule = require('sandboxed-module')
|
|
|
+should = require('chai').should()
|
|
|
+expect = require('chai').expect
|
|
|
+sinon = require 'sinon'
|
|
|
+assert = require("chai").assert
|
|
|
+modulePath = "../../../../app/js/Features/ReferencesSearch/ReferencesSearchHandler"
|
|
|
+
|
|
|
+describe 'ReferencesSearchHandler', ->
|
|
|
+
|
|
|
+ beforeEach ->
|
|
|
+ @project_id = '222'
|
|
|
+ @file_url = 'http://example.com/some/file'
|
|
|
+ @handler = SandboxedModule.require modulePath, requires:
|
|
|
+ 'logger-sharelatex': {
|
|
|
+ log: ->
|
|
|
+ err: ->
|
|
|
+ }
|
|
|
+ 'settings-sharelatex': @settings = {
|
|
|
+ apis: {references: {url: 'http://some.url'}}
|
|
|
+ }
|
|
|
+ 'request': @request = {
|
|
|
+ get: sinon.stub()
|
|
|
+ post: sinon.stub()
|
|
|
+ }
|
|
|
+
|
|
|
+ describe 'indexFile', ->
|
|
|
+
|
|
|
+ describe 'when index operation is successful', ->
|
|
|
+ beforeEach ->
|
|
|
+ @request.post.callsArgWith(1, null, {statusCode: 201}, {})
|
|
|
+
|
|
|
+ it 'should not produce an error', (done) ->
|
|
|
+ @handler.indexFile @project_id, @file_url, (err) =>
|
|
|
+ expect(err).to.equal null
|
|
|
+ done()
|
|
|
+
|
|
|
+ describe 'when index operation fails', ->
|
|
|
+ beforeEach ->
|
|
|
+ @request.post.callsArgWith(1, null, {statusCode: 500}, {})
|
|
|
+
|
|
|
+ it 'should produce an error', (done) ->
|
|
|
+ @handler.indexFile @project_id, @file_url, (err) =>
|
|
|
+ expect(err).to.not.equal null
|
|
|
+ done()
|
|
|
+
|
|
|
+ describe 'getKeys', ->
|
|
|
+
|
|
|
+ describe 'when request is successful', ->
|
|
|
+ beforeEach ->
|
|
|
+ @data =
|
|
|
+ projectId: @projectId
|
|
|
+ keys: ['a', 'b', 'c']
|
|
|
+ @request.get.callsArgWith(1, null, {statusCode: 200}, @data)
|
|
|
+
|
|
|
+ it 'should not produce an error', ->
|
|
|
+ @handler.getKeys @project_id, (err, result) =>
|
|
|
+ expect(err).to.equal null
|
|
|
+
|
|
|
+ it 'should produce a result object', ->
|
|
|
+ @handler.getKeys @project_id, (err, result) =>
|
|
|
+ expect(result).to.not.equal null
|
|
|
+ expect(result).to.deep.equal @data
|
|
|
+
|
|
|
+ describe 'when request fails', ->
|
|
|
+ beforeEach ->
|
|
|
+ @data =
|
|
|
+ projectId: @project_Id
|
|
|
+ keys: ['a', 'b', 'c']
|
|
|
+ @request.get.callsArgWith(1, null, {statusCode: 500}, null)
|
|
|
+
|
|
|
+ it 'should produce an error', ->
|
|
|
+ @handler.getKeys @project_id, (err, result) =>
|
|
|
+ expect(err).to.not.equal null
|
|
|
+
|
|
|
+ it 'should not produce a result', ->
|
|
|
+ @handler.getKeys @project_id, (err, result) =>
|
|
|
+ expect(result).to.not.equal null
|