From d57b229e170615b2f345ecde1d6a7693b20a7799 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 14 Aug 2019 13:03:14 +0100 Subject: [PATCH] update tests --- .../coffee/ConnectedUsersManagerTests.coffee | 16 ++++++++-------- .../unit/coffee/WebsocketControllerTests.coffee | 14 +++++++++++--- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/services/real-time/test/unit/coffee/ConnectedUsersManagerTests.coffee b/services/real-time/test/unit/coffee/ConnectedUsersManagerTests.coffee index 7d83cf1a0d..e88b1f27ad 100644 --- a/services/real-time/test/unit/coffee/ConnectedUsersManagerTests.coffee +++ b/services/real-time/test/unit/coffee/ConnectedUsersManagerTests.coffee @@ -147,18 +147,18 @@ describe "ConnectedUsersManager", -> describe "getConnectedUsers", -> beforeEach -> - @users = ["1234", "5678", "9123"] + @users = ["1234", "5678", "9123", "8234"] @rClient.smembers.callsArgWith(1, null, @users) @ConnectedUsersManager._getConnectedUser = sinon.stub() - @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[0]).callsArgWith(2, null, {connected:true, client_id:@users[0]}) - @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[1]).callsArgWith(2, null, {connected:false, client_id:@users[1]}) - @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[2]).callsArgWith(2, null, {connected:true, client_id:@users[2]}) + @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[0]).callsArgWith(2, null, {connected:true, client_age: 2, client_id:@users[0]}) + @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[1]).callsArgWith(2, null, {connected:false, client_age: 1, client_id:@users[1]}) + @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[2]).callsArgWith(2, null, {connected:true, client_age: 3, client_id:@users[2]}) + @ConnectedUsersManager._getConnectedUser.withArgs(@project_id, @users[3]).callsArgWith(2, null, {connected:true, client_age: 11, client_id:@users[3]}) # connected but old - - it "should only return the users in the list which are still in redis", (done)-> + it "should only return the users in the list which are still in redis and recently updated", (done)-> @ConnectedUsersManager.getConnectedUsers @project_id, (err, users)=> users.length.should.equal 2 - users[0].should.deep.equal {client_id:@users[0], connected:true} - users[1].should.deep.equal {client_id:@users[2], connected:true} + users[0].should.deep.equal {client_id:@users[0], client_age: 2, connected:true} + users[1].should.deep.equal {client_id:@users[2], client_age: 3, connected:true} done() diff --git a/services/real-time/test/unit/coffee/WebsocketControllerTests.coffee b/services/real-time/test/unit/coffee/WebsocketControllerTests.coffee index d0dad108e7..edb0055bf5 100644 --- a/services/real-time/test/unit/coffee/WebsocketControllerTests.coffee +++ b/services/real-time/test/unit/coffee/WebsocketControllerTests.coffee @@ -355,18 +355,26 @@ describe 'WebsocketController', -> beforeEach -> @client.params.project_id = @project_id @users = ["mock", "users"] + @WebsocketLoadBalancer.emitToRoom = sinon.stub() @ConnectedUsersManager.getConnectedUsers = sinon.stub().callsArgWith(1, null, @users) describe "when authorized", -> - beforeEach -> + beforeEach (done) -> @AuthorizationManager.assertClientCanViewProject = sinon.stub().callsArgWith(1, null) - @WebsocketController.getConnectedUsers @client, @callback + @WebsocketController.getConnectedUsers @client, (args...) => + @callback(args...) + done() it "should check that the client is authorized to view the project", -> @AuthorizationManager.assertClientCanViewProject .calledWith(@client) .should.equal true - + + it "should broadcast a request to update the client list", -> + @WebsocketLoadBalancer.emitToRoom + .calledWith(@project_id, "clientTracking.refresh") + .should.equal true + it "should get the connected users for the project", -> @ConnectedUsersManager.getConnectedUsers .calledWith(@project_id)