From 6318d9ace195f219fcb281873a5a6c36fd569986 Mon Sep 17 00:00:00 2001 From: James Allen Date: Fri, 28 Mar 2014 12:47:15 +0000 Subject: [PATCH] Return features along with project details --- .../Project/ProjectDetailsHandler.coffee | 16 +++++---- .../Project/ProjectDetailsHandlerTests.coffee | 35 +++++++++++-------- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee b/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee index 7e3960db23..3d59a16e94 100644 --- a/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee +++ b/services/web/app/coffee/Features/Project/ProjectDetailsHandler.coffee @@ -1,4 +1,5 @@ ProjectGetter = require("./ProjectGetter") +UserGetter = require("../User/UserGetter") Project = require('../../models/Project').Project logger = require("logger-sharelatex") @@ -9,12 +10,15 @@ module.exports = if err? logger.err err:err, project_id:project_id, "error getting project" return callback(err) - details = - name : project.name - description: project.description - compiler: project.compiler - logger.log project_id:project_id, details:details, "getting project details" - callback(err, details) + UserGetter.getUser project.owner_ref, (err, user) -> + return callback(err) if err? + details = + name : project.name + description: project.description + compiler: project.compiler + features: user.features + logger.log project_id:project_id, details:details, "getting project details" + callback(err, details) setProjectDescription: (project_id, description, callback)-> conditions = _id:project_id diff --git a/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee b/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee index 44773f0fb5..585e007cf6 100644 --- a/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Project/ProjectDetailsHandlerTests.coffee @@ -8,36 +8,41 @@ require('chai').should() describe 'Project details handler', -> beforeEach -> - @ProjectGetter = - getProjectWithoutDocLines: sinon.stub() - @ProjectModel = - update: sinon.stub() - @handler = SandboxedModule.require modulePath, requires: - "./ProjectGetter":@ProjectGetter - '../../models/Project': Project:@ProjectModel - 'logger-sharelatex': - log:-> - err:-> @project_id = "321l3j1kjkjl" + @user_id = "user-id-123" @project = name: "project" description: "this is a great project" something:"should not exist" compiler: "latexxxxxx" - + owner_ref: @user_id + @user = + features: "mock-features" + @ProjectGetter = + getProjectWithoutDocLines: sinon.stub().callsArgWith(1, null, @project) + @ProjectModel = + update: sinon.stub() + @UserGetter = + getUser: sinon.stub().callsArgWith(1, null, @user) + @handler = SandboxedModule.require modulePath, requires: + "./ProjectGetter":@ProjectGetter + '../../models/Project': Project:@ProjectModel + "../User/UserGetter": @UserGetter + 'logger-sharelatex': + log:-> + err:-> describe "getDetails", -> - it "should find the project", (done)-> - @ProjectGetter.getProjectWithoutDocLines.callsArgWith(1, null, @project) - @handler.getDetails @project_id, (err, details)=> + it "should find the project and owner", (done)-> + @handler.getDetails @project_id, (err, details)=> details.name.should.equal @project.name details.description.should.equal @project.description details.compiler.should.equal @project.compiler + details.features.should.equal @user.features assert.equal(details.something, undefined) done() - it "should return the error", (done)-> error = "some error" @ProjectGetter.getProjectWithoutDocLines.callsArgWith(1, error)