AnalyticsControllerTests.coffee 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. should = require('chai').should()
  2. SandboxedModule = require('sandboxed-module')
  3. assert = require('assert')
  4. path = require('path')
  5. modulePath = path.join __dirname, '../../../../app/js/Features/Analytics/AnalyticsController'
  6. sinon = require("sinon")
  7. expect = require("chai").expect
  8. describe 'AnalyticsController', ->
  9. beforeEach ->
  10. @AuthenticationController =
  11. getLoggedInUserId: sinon.stub()
  12. @AnalyticsManager =
  13. recordEvent: sinon.stub().callsArgWith(3)
  14. @req =
  15. params:
  16. event:"i_did_something"
  17. body:"stuff"
  18. sessionID: "sessionIDHere"
  19. @res =
  20. send:->
  21. @controller = SandboxedModule.require modulePath, requires:
  22. "./AnalyticsManager":@AnalyticsManager
  23. "../Authentication/AuthenticationController":@AuthenticationController
  24. "logger-sharelatex":
  25. log:->
  26. describe "recordEvent", ->
  27. it "should use the user_id", (done)->
  28. @AuthenticationController.getLoggedInUserId.returns("1234")
  29. @controller.recordEvent @req, @res
  30. @AnalyticsManager.recordEvent.calledWith("1234", @req.params["event"], @req.body).should.equal true
  31. done()
  32. it "should use the session id", (done)->
  33. @controller.recordEvent @req, @res
  34. @AnalyticsManager.recordEvent.calledWith(@req.sessionID, @req.params["event"], @req.body).should.equal true
  35. done()