|
|
@@ -0,0 +1,56 @@
|
|
|
+expect = require('chai').expect
|
|
|
+request = require './helpers/request'
|
|
|
+_ = require 'underscore'
|
|
|
+
|
|
|
+
|
|
|
+User = require './helpers/User'
|
|
|
+ProjectGetter = require '../../../app/js/Features/Project/ProjectGetter.js'
|
|
|
+ExportsHandler = require '../../../app/js/Features/Exports/ExportsHandler.js'
|
|
|
+
|
|
|
+MockProjectHistoryApi = require './helpers/MockProjectHistoryApi'
|
|
|
+MockV1Api = require './helpers/MockV1Api'
|
|
|
+
|
|
|
+describe 'Exports', ->
|
|
|
+ before (done) ->
|
|
|
+ @brand_variation_id = '18'
|
|
|
+ @owner = new User()
|
|
|
+ @owner.login (error) =>
|
|
|
+ throw error if error?
|
|
|
+ @owner.createProject 'example-project', {template: 'example'}, (error, @project_id) =>
|
|
|
+ throw error if error?
|
|
|
+ done()
|
|
|
+
|
|
|
+ describe 'exporting a project', ->
|
|
|
+ beforeEach (done) ->
|
|
|
+ @version = Math.floor(Math.random() * 10000)
|
|
|
+ MockProjectHistoryApi.setProjectVersion(@project_id, @version)
|
|
|
+ @export_id = Math.floor(Math.random() * 10000)
|
|
|
+ MockV1Api.setExportId(@export_id)
|
|
|
+ MockV1Api.clearExportParams()
|
|
|
+ @owner.request {
|
|
|
+ method: 'POST',
|
|
|
+ url: "/project/#{@project_id}/export/#{@brand_variation_id}",
|
|
|
+ json: {},
|
|
|
+ }, (error, response, body) =>
|
|
|
+ throw error if error?
|
|
|
+ expect(response.statusCode).to.equal 200
|
|
|
+ @exportResponseBody = body
|
|
|
+ done()
|
|
|
+
|
|
|
+ it 'should have sent correct data to v1', (done) ->
|
|
|
+ {project, user, destination, options} = MockV1Api.getLastExportParams()
|
|
|
+ # project details should match
|
|
|
+ expect(project.id).to.equal @project_id
|
|
|
+ expect(project.rootDocPath).to.equal '/main.tex'
|
|
|
+ # version should match what was retrieved from project-history
|
|
|
+ expect(project.historyVersion).to.equal @version
|
|
|
+ # user details should match
|
|
|
+ expect(user.id).to.equal @owner.id
|
|
|
+ expect(user.email).to.equal @owner.email
|
|
|
+ # brand-variation should match
|
|
|
+ expect(destination.brandVariationId).to.equal @brand_variation_id
|
|
|
+ done()
|
|
|
+
|
|
|
+ it 'should have returned the export ID provided by v1', (done) ->
|
|
|
+ expect(@exportResponseBody.export_v1_id).to.equal @export_id
|
|
|
+ done()
|