Просмотр исходного кода

add tests for AnalyticsController

Henry Oswald 9 лет назад
Родитель
Сommit
f910bb58de

+ 44 - 0
services/web/test/UnitTests/coffee/Analytics/AnalyticsControllerTests.coffee

@@ -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()