From a869c99c60cee02e2b57f0828ba170f80590a506 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 4 Jul 2016 10:05:34 +0100 Subject: [PATCH] Begin testing `UserSessionsManager`. --- .../Features/User/UserSessionsManager.coffee | 3 +- .../coffee/User/UserSessionsManager.coffee | 47 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 services/web/test/UnitTests/coffee/User/UserSessionsManager.coffee diff --git a/services/web/app/coffee/Features/User/UserSessionsManager.coffee b/services/web/app/coffee/Features/User/UserSessionsManager.coffee index 0d4dff5927..87d5398b8a 100644 --- a/services/web/app/coffee/Features/User/UserSessionsManager.coffee +++ b/services/web/app/coffee/Features/User/UserSessionsManager.coffee @@ -1,9 +1,10 @@ Settings = require('settings-sharelatex') redis = require('redis-sharelatex') -rclient = redis.createClient(Settings.redis.web) logger = require("logger-sharelatex") Async = require('async') +rclient = redis.createClient(Settings.redis.web) + module.exports = UserSessionsManager = _sessionSetKey: (user) -> diff --git a/services/web/test/UnitTests/coffee/User/UserSessionsManager.coffee b/services/web/test/UnitTests/coffee/User/UserSessionsManager.coffee new file mode 100644 index 0000000000..9aca469a3b --- /dev/null +++ b/services/web/test/UnitTests/coffee/User/UserSessionsManager.coffee @@ -0,0 +1,47 @@ +sinon = require('sinon') +chai = require('chai') +should = chai.should() +expect = chai.expect +modulePath = "../../../../app/js/Features/User/UserSessionsManager.js" +SandboxedModule = require('sandboxed-module') + +describe 'UserSessionsManager', -> + + beforeEach -> + @user = + _id: "abcd" + email: "user@example.com" + @sessionId = 'some_session_id' + @rclient = + multi: () => @rclient + exec: sinon.stub() + get: sinon.stub().returns(@rclient) + sadd: sinon.stub().returns(@rclient) + srem: sinon.stub().returns(@rclient) + smembers: sinon.stub().returns(@rclient) + expire: sinon.stub().returns(@rclient) + @redis = + createClient: () -> @rclient + @logger = + err: sinon.stub() + error: sinon.stub() + log: sinon.stub() + @settings = + redis: + web: {} + @UserSessionsManager = SandboxedModule.require modulePath, requires: + "redis-sharelatex": @redis + "logger-sharelatex": @logger + "settings-sharelatex": @settings + + describe '_sessionSetKey', -> + + it 'should build the correct key', -> + result = @UserSessionsManager._sessionSetKey(@user) + result.should.equal 'UserSessions:abcd' + + describe '_sessionKey', -> + + it 'should build the correct key', -> + result = @UserSessionsManager._sessionKey(@sessionId) + result.should.equal 'sess:some_session_id'