Merge pull request #461 from sharelatex/ho-annom-user-events

add identify on login
This commit is contained in:
Henry Oswald
2017-03-27 09:28:34 +01:00
committed by GitHub
6 changed files with 63 additions and 2 deletions
@@ -0,0 +1,44 @@
should = require('chai').should()
SandboxedModule = require('sandboxed-module')
assert = require('assert')
path = require('path')
modulePath = path.join __dirname, '../../../../app/js/Features/Analytics/AnalyticsController'
sinon = require("sinon")
expect = require("chai").expect
describe 'AnalyticsController', ->
beforeEach ->
@AuthenticationController =
getLoggedInUserId: sinon.stub()
@AnalyticsManager =
recordEvent: sinon.stub().callsArgWith(3)
@req =
params:
event:"i_did_something"
body:"stuff"
sessionID: "sessionIDHere"
@res =
send:->
@controller = SandboxedModule.require modulePath, requires:
"./AnalyticsManager":@AnalyticsManager
"../Authentication/AuthenticationController":@AuthenticationController
"logger-sharelatex":
log:->
describe "recordEvent", ->
it "should use the user_id", (done)->
@AuthenticationController.getLoggedInUserId.returns("1234")
@controller.recordEvent @req, @res
@AnalyticsManager.recordEvent.calledWith("1234", @req.params["event"], @req.body).should.equal true
done()
it "should use the session id", (done)->
@controller.recordEvent @req, @res
@AnalyticsManager.recordEvent.calledWith(@req.sessionID, @req.params["event"], @req.body).should.equal true
done()
@@ -254,6 +254,8 @@ describe "AuthenticationController", ->
@cb = sinon.stub()
@LoginRateLimiter.processLoginRequest.callsArgWith(1, null, true)
@AuthenticationManager.authenticate = sinon.stub().callsArgWith(2, null, @user)
@req.sessionID = Math.random()
@AnalyticsManager.identifyUser = sinon.stub()
@AuthenticationController.doPassportLogin(@req, @req.body.email, @req.body.password, @cb)
it "should attempt to authorise the user", ->
@@ -261,6 +263,9 @@ describe "AuthenticationController", ->
.calledWith(email: @email.toLowerCase(), @password)
.should.equal true
it "should call identifyUser", ->
@AnalyticsManager.identifyUser.calledWith(@user._id, @req.sessionID).should.equal true
it "should setup the user data in the background", ->
@UserHandler.setupLoginData.calledWith(@user).should.equal true