|
|
@@ -24,6 +24,7 @@ describe "ConnectedUsersManager", ->
|
|
|
srem:sinon.stub()
|
|
|
del:sinon.stub()
|
|
|
smembers:sinon.stub()
|
|
|
+ expire:sinon.stub()
|
|
|
tk.freeze(new Date())
|
|
|
|
|
|
@ConnectedUsersManager = SandboxedModule.require modulePath, requires:
|
|
|
@@ -41,12 +42,12 @@ describe "ConnectedUsersManager", ->
|
|
|
beforeEach ->
|
|
|
@rClient.setex.callsArgWith(3)
|
|
|
@rClient.sadd.callsArgWith(2)
|
|
|
+ @rClient.expire.callsArgWith(2)
|
|
|
|
|
|
|
|
|
it "should set a key with the date and give it a ttl", (done)->
|
|
|
@ConnectedUsersManager.markUserAsConnected @project_id, @user_id, (err)=>
|
|
|
- console.log @rClient.setex.args[0], "connected_user:#{@project_id}:#{@user_id}"
|
|
|
- @rClient.setex.calledWith("connected_user:#{@project_id}:#{@user_id}", 60 * 60 * 6, new Date()).should.equal true
|
|
|
+ @rClient.setex.calledWith("connected_user:#{@project_id}:#{@user_id}", 60 * 60, new Date()).should.equal true
|
|
|
done()
|
|
|
|
|
|
it "should push the user_id on to the project list", (done)->
|
|
|
@@ -54,10 +55,16 @@ describe "ConnectedUsersManager", ->
|
|
|
@rClient.sadd.calledWith("users_in_project:#{@project_id}", @user_id).should.equal true
|
|
|
done()
|
|
|
|
|
|
+ it "should add a ttl to the connected user set so it stays clean", (done)->
|
|
|
+ @ConnectedUsersManager.markUserAsConnected @project_id, @user_id, (err)=>
|
|
|
+ @rClient.expire.calledWith("users_in_project:#{@project_id}", 24 * 4 * 60 * 60).should.equal true
|
|
|
+ done()
|
|
|
+
|
|
|
describe "markUserAsDisconnected", ->
|
|
|
beforeEach ->
|
|
|
@rClient.srem.callsArgWith(2)
|
|
|
@rClient.del.callsArgWith(1)
|
|
|
+ @rClient.expire.callsArgWith(2)
|
|
|
|
|
|
it "should remove the user from the set", (done)->
|
|
|
@ConnectedUsersManager.markUserAsDisconnected @project_id, @user_id, (err)=>
|
|
|
@@ -69,6 +76,10 @@ describe "ConnectedUsersManager", ->
|
|
|
@rClient.del.calledWith("connected_user:#{@project_id}:#{@user_id}").should.equal true
|
|
|
done()
|
|
|
|
|
|
+ it "should add a ttl to the connected user set so it stays clean", (done)->
|
|
|
+ @ConnectedUsersManager.markUserAsDisconnected @project_id, @user_id, (err)=>
|
|
|
+ @rClient.expire.calledWith("users_in_project:#{@project_id}", 24 * 4 * 60 * 60).should.equal true
|
|
|
+ done()
|
|
|
|
|
|
|
|
|
describe "_getConnectedUser", ->
|