diff --git a/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersController.coffee b/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersController.coffee new file mode 100644 index 0000000000..70bcf15d6e --- /dev/null +++ b/services/web/app/coffee/Features/ConnectedUsers/ConnectedUsersController.coffee @@ -0,0 +1,13 @@ +ConnectedUsersManager = require("./ConnectedUsersManager") +logger = require("logger-sharelatex") + +module.exports = + + getConnectedUsers: (req, res)-> + project_id = req.params.project_id + ConnectedUsersManager.getConnectedUsers project_id, (err, users)-> + if err? + logger.err err:err, project_id:project_id, "problem getting connected users" + return res.send 500 + res.send(users) + diff --git a/services/web/test/UnitTests/coffee/ConnectedUsers/ConnectedUsersControllerTests.coffee b/services/web/test/UnitTests/coffee/ConnectedUsers/ConnectedUsersControllerTests.coffee new file mode 100644 index 0000000000..fb7fd653ea --- /dev/null +++ b/services/web/test/UnitTests/coffee/ConnectedUsers/ConnectedUsersControllerTests.coffee @@ -0,0 +1,46 @@ +should = require('chai').should() +SandboxedModule = require('sandboxed-module') +assert = require('assert') +path = require('path') +sinon = require('sinon') +modulePath = path.join __dirname, "../../../../app/js/Features/ConnectedUsers/ConnectedUsersController" +expect = require("chai").expect + +describe "ConnectedUsersController", -> + + beforeEach -> + + @settings = {} + @ConnectedUsersManager = + getConnectedUsers:sinon.stub() + @ConnectedUsersController = SandboxedModule.require modulePath, requires: + "settings-sharelatex":@settings + "./ConnectedUsersManager":@ConnectedUsersManager + "logger-sharelatex": + log:-> + err:-> + @project_id = "231312390128309" + @req = + params: + project_id:@project_id + @res = {} + + + describe "getConnectedUsers", -> + + beforeEach -> + @connectedUsersData = [{user_id:"312321"}, {user_id:"3213213"}] + + it "should get the connected user data for that project", (done)-> + @ConnectedUsersManager.getConnectedUsers.callsArgWith(1, null, @connectedUsersData) + @res.send = (d)=> + d.should.deep.equal @connectedUsersData + done() + @ConnectedUsersController.getConnectedUsers @req, @res + + it "should send a 500 on an error", (done)-> + @ConnectedUsersManager.getConnectedUsers.callsArgWith(1, "error") + @res.send = (code)=> + code.should.equal 500 + done() + @ConnectedUsersController.getConnectedUsers @req, @res diff --git a/services/web/test/UnitTests/coffee/ConnectedUsersManager/ConnectedUsersManagerTests.coffee b/services/web/test/UnitTests/coffee/ConnectedUsers/ConnectedUsersManagerTests.coffee similarity index 100% rename from services/web/test/UnitTests/coffee/ConnectedUsersManager/ConnectedUsersManagerTests.coffee rename to services/web/test/UnitTests/coffee/ConnectedUsers/ConnectedUsersManagerTests.coffee