overleaf/services/web/test/unit/coffee/Exports/ExportsControllerTests.coffee
2018-06-29 19:36:59 -03:00

51 lines
1.5 KiB
CoffeeScript

SandboxedModule = require('sandboxed-module')
assert = require('assert')
chai = require('chai')
expect = chai.expect
sinon = require('sinon')
modulePath = require('path').join __dirname, '../../../../app/js/Features/Exports/ExportsController.js'
describe 'ExportsController', ->
project_id = "123njdskj9jlk"
user_id = "123nd3ijdks"
brand_variation_id = 22
beforeEach ->
@handler =
getUserNotifications: sinon.stub().callsArgWith(1)
@req =
params:
project_id: project_id
brand_variation_id: brand_variation_id
session:
user:
_id:user_id
i18n:
translate:->
@AuthenticationController =
getLoggedInUserId: sinon.stub().returns(@req.session.user._id)
@controller = SandboxedModule.require modulePath, requires:
"./ExportsHandler":@handler
'logger-sharelatex':
log:->
err:->
'../Authentication/AuthenticationController': @AuthenticationController
it 'should ask the handler to perform the export', (done) ->
@handler.exportProject = sinon.stub().yields(null, {iAmAnExport: true, v1_id: 897})
@controller.exportProject @req, send:(body) =>
expect(body).to.deep.equal {export_v1_id: 897}
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()