adding tests for exports status checker

This commit is contained in:
hugh-obrien 2018-06-09 13:23:07 +01:00
parent fb9ca430de
commit 0321780eba
3 changed files with 43 additions and 1 deletions

View file

@ -104,7 +104,6 @@ module.exports = ExportsHandler = self =
url: "#{settings.apis.v1.url}/api/v1/sharelatex/exports/#{export_id}" url: "#{settings.apis.v1.url}/api/v1/sharelatex/exports/#{export_id}"
auth: {user: settings.apis.v1.user, pass: settings.apis.v1.pass } auth: {user: settings.apis.v1.user, pass: settings.apis.v1.pass }
}, (err, res, body) -> }, (err, res, body) ->
console.log(body)
if err? if err?
logger.err err:err, export:export_id, "error making request to v1 export" logger.err err:err, export:export_id, "error making request to v1 export"
callback err callback err

View file

@ -37,3 +37,15 @@ describe 'ExportsController', ->
@controller.exportProject @req, send:(body) => @controller.exportProject @req, send:(body) =>
expect(body).to.deep.equal {export_v1_id: 897} expect(body).to.deep.equal {export_v1_id: 897}
done() done()
it 'should ask the handler to return the status of an export', (done) ->
@handler.fetchExport = sinon.stub().yields(
null,
"{\"id\":897, \"status_summary\":\"completed\"}")
@req.params = {project_id: project_id, export_id: 897}
@controller.exportStatus @req, send:(body) =>
expect(body).to.deep.equal {export_json: {
status_summary: 'completed', status_detail: undefined
}}
done()

View file

@ -235,3 +235,34 @@ describe 'ExportsHandler', ->
it "should return the error", -> it "should return the error", ->
(@callback.args[0][0] instanceof Error) (@callback.args[0][0] instanceof Error)
.should.equal true .should.equal true
describe 'fetchExport', ->
beforeEach (done) ->
@settings.apis =
v1:
url: 'http://localhost:5000'
user: 'overleaf'
pass: 'pass'
@export_id = 897
@body = "{\"id\":897, \"status_summary\":\"completed\"}"
@stubGet = sinon.stub().yields(null, {statusCode: 200}, { body: @body })
done()
describe "when all goes well", ->
beforeEach (done) ->
@stubRequest.get = @stubGet
@ExportsHandler.fetchExport @export_id, (error, body) =>
@callback(error, body)
done()
it 'should issue the request', ->
expect(@stubGet.getCall(0).args[0]).to.deep.equal
url: @settings.apis.v1.url + '/api/v1/sharelatex/exports/' + @export_id
auth:
user: @settings.apis.v1.user
pass: @settings.apis.v1.pass
it 'should return the v1 export id', ->
@callback.calledWith(null, { body: @body })
.should.equal true