mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
moved new project from old proj controller to new one with test
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
logger = require("logger-sharelatex")
|
||||
projectDeleter = require("./ProjectDeleter")
|
||||
projectDuplicator = require("./ProjectDuplicator")
|
||||
projectCreationHandler = require("./ProjectCreationHandler")
|
||||
metrics = require('../../infrastructure/Metrics')
|
||||
sanitize = require('sanitizer')
|
||||
|
||||
|
||||
|
||||
@@ -27,4 +29,27 @@ module.exports =
|
||||
if err?
|
||||
logger.error err:err, project_id: project_id, user_id: req.session.user._id, "error cloning project"
|
||||
return next(err)
|
||||
res.send(project_id:project._id)
|
||||
res.send(project_id:project._id)
|
||||
|
||||
|
||||
newProject: (req, res)->
|
||||
user = req.session.user
|
||||
projectName = sanitize.escape(req.body.projectName)
|
||||
template = sanitize.escape(req.body.template)
|
||||
logger.log user: user, type: template, name: projectName, "creating project"
|
||||
if template == 'example'
|
||||
projectCreationHandler.createExampleProject user._id, projectName, (err, project)->
|
||||
if err?
|
||||
logger.error err: err, project: project, user: user, name: projectName, type: "example", "error creating project"
|
||||
res.send 500
|
||||
else
|
||||
logger.log project: project, user: user, name: projectName, type: "example", "created project"
|
||||
res.send {project_id:project._id}
|
||||
else
|
||||
projectCreationHandler.createBasicProject user._id, projectName, (err, project)->
|
||||
if err?
|
||||
logger.error err: err, project: project, user: user, name: projectName, type: "basic", "error creating project"
|
||||
res.send 500
|
||||
else
|
||||
logger.log project: project, user: user, name: projectName, type: "basic", "created project"
|
||||
res.send {project_id:project._id}
|
||||
@@ -93,7 +93,7 @@ module.exports = class Router
|
||||
app.get '/user/:user_id/personal_info', httpAuth, PersonalInfoController.getPersonalInfo
|
||||
|
||||
app.get '/project', AuthenticationController.requireLogin(), Project.list
|
||||
app.post '/project/new', AuthenticationController.requireLogin(), Project.apiNewProject
|
||||
app.post '/project/new', AuthenticationController.requireLogin(), ProjectController.NewProject
|
||||
app.get '/project/new/template', TemplatesMiddlewear.saveTemplateDataInSession, AuthenticationController.requireLogin(), TemplatesController.createProjectFromZipTemplate
|
||||
|
||||
app.get '/Project/:Project_id', SecurityManager.requestCanAccessProject, Project.loadEditor
|
||||
|
||||
@@ -17,11 +17,15 @@ describe "ProjectController", ->
|
||||
deleteProject: sinon.stub().callsArgWith(1)
|
||||
@ProjectDuplicator =
|
||||
duplicate: sinon.stub().callsArgWith(3, null, {_id:@project_id})
|
||||
@ProjectCreationHandler =
|
||||
createExampleProject: sinon.stub().callsArgWith(2, null, {_id:@project_id})
|
||||
createBasicProject: sinon.stub().callsArgWith(2, null, {_id:@project_id})
|
||||
@ProjectController = SandboxedModule.require modulePath, requires:
|
||||
"settings-sharelatex":@settings
|
||||
"logger-sharelatex": log:->
|
||||
"./ProjectDeleter": @ProjectDeleter
|
||||
"./ProjectDuplicator": @ProjectDuplicator
|
||||
"./ProjectCreationHandler": @ProjectCreationHandler
|
||||
|
||||
|
||||
@user =
|
||||
@@ -56,3 +60,29 @@ describe "ProjectController", ->
|
||||
json.project_id.should.equal @project_id
|
||||
done()
|
||||
@ProjectController.cloneProject @req, @res
|
||||
|
||||
|
||||
|
||||
describe "newProject", ->
|
||||
|
||||
it "should call the projectCreationHandler with createExampleProject", (done)->
|
||||
@req.body.template = "example"
|
||||
@res.send = (json)=>
|
||||
@ProjectCreationHandler.createExampleProject.calledWith(@user._id, @projectName).should.equal true
|
||||
@ProjectCreationHandler.createBasicProject.called.should.equal false
|
||||
done()
|
||||
@ProjectController.newProject @req, @res
|
||||
|
||||
|
||||
it "should call the projectCreationHandler with createBasicProject", (done)->
|
||||
@req.body.template = "basic"
|
||||
@res.send = (json)=>
|
||||
@ProjectCreationHandler.createExampleProject.called.should.equal false
|
||||
@ProjectCreationHandler.createBasicProject.calledWith(@user._id, @projectName).should.equal true
|
||||
done()
|
||||
@ProjectController.newProject @req, @res
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user