|
|
@@ -20,13 +20,21 @@ describe "ProjectController", ->
|
|
|
@ProjectCreationHandler =
|
|
|
createExampleProject: sinon.stub().callsArgWith(2, null, {_id:@project_id})
|
|
|
createBasicProject: sinon.stub().callsArgWith(2, null, {_id:@project_id})
|
|
|
+ @SubscriptionLocator =
|
|
|
+ getUsersSubscription: sinon.stub()
|
|
|
+ @TagsHandler =
|
|
|
+ getAllTags: sinon.stub()
|
|
|
+ @ProjectModel =
|
|
|
+ findAllUsersProjects: sinon.stub()
|
|
|
@ProjectController = SandboxedModule.require modulePath, requires:
|
|
|
"settings-sharelatex":@settings
|
|
|
"logger-sharelatex": log:->
|
|
|
"./ProjectDeleter": @ProjectDeleter
|
|
|
"./ProjectDuplicator": @ProjectDuplicator
|
|
|
"./ProjectCreationHandler": @ProjectCreationHandler
|
|
|
-
|
|
|
+ "../Subscription/SubscriptionLocator": @SubscriptionLocator
|
|
|
+ "../Tags/TagsHandler":@TagsHandler
|
|
|
+ '../../models/Project': Project:@ProjectModel
|
|
|
|
|
|
@user =
|
|
|
_id:"!£123213kjljkl"
|
|
|
@@ -85,4 +93,36 @@ describe "ProjectController", ->
|
|
|
|
|
|
|
|
|
|
|
|
+ describe "projectListPage", ->
|
|
|
+
|
|
|
+ beforeEach ->
|
|
|
+ @tags = [{name:1, project_ids:["1","2","3"]}, {name:2, project_ids:["a","1"]}, {name:3, project_ids:["a", "b", "c", "d"]}]
|
|
|
+ @projects = [{lastUpdated:1, _id:1}, {lastUpdated:2, _id:2}]
|
|
|
+ @collabertions = [{lastUpdated:5, _id:5}]
|
|
|
+ @readOnly = [{lastUpdated:3, _id:3}]
|
|
|
+ @SubscriptionLocator.getUsersSubscription.callsArgWith(1, null, {})
|
|
|
+ @TagsHandler.getAllTags.callsArgWith(1, null, @tags, {})
|
|
|
+ @ProjectModel.findAllUsersProjects.callsArgWith(2, @projects, @collabertions, @readOnly)
|
|
|
+
|
|
|
+ it "should render the project/list page", (done)->
|
|
|
+
|
|
|
+ @req.body.template = "example"
|
|
|
+ @res.render = (pageName, opts)=>
|
|
|
+ pageName.should.equal "project/list"
|
|
|
+ done()
|
|
|
+ @ProjectController.projectListPage @req, @res
|
|
|
+
|
|
|
+ it "should send the tags", (done)->
|
|
|
+ @res.render = (pageName, opts)=>
|
|
|
+ opts.tags.length.should.equal @tags.length
|
|
|
+ done()
|
|
|
+ @ProjectController.projectListPage @req, @res
|
|
|
+
|
|
|
+
|
|
|
+ it "should send the projects", (done)->
|
|
|
+ @res.render = (pageName, opts)=>
|
|
|
+ opts.projects.length.should.equal (@projects.length + @collabertions.length + @readOnly.length)
|
|
|
+ done()
|
|
|
+ @ProjectController.projectListPage @req, @res
|
|
|
+
|
|
|
|