EditorRealTimeControllerTests.coffee 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. SandboxedModule = require('sandboxed-module')
  2. sinon = require('sinon')
  3. require('chai').should()
  4. modulePath = require('path').join __dirname, '../../../../app/js/Features/Editor/EditorRealTimeController'
  5. describe "EditorRealTimeController", ->
  6. beforeEach ->
  7. @EditorRealTimeController = SandboxedModule.require modulePath, requires:
  8. "redis-sharelatex":
  9. createClient: () ->
  10. auth:->
  11. "../../infrastructure/Server" : io: @io = {}
  12. @EditorRealTimeController.rclientPub = publish: sinon.stub()
  13. @EditorRealTimeController.rclientSub =
  14. subscribe: sinon.stub()
  15. on: sinon.stub()
  16. @room_id = "room-id"
  17. @message = "message-to-editor"
  18. @payload = ["argument one", 42]
  19. describe "emitToRoom", ->
  20. beforeEach ->
  21. @EditorRealTimeController.emitToRoom(@room_id, @message, @payload...)
  22. it "should publish the message to redis", ->
  23. @EditorRealTimeController.rclientPub.publish
  24. .calledWith("editor-events", JSON.stringify(
  25. room_id: @room_id,
  26. message: @message
  27. payload: @payload
  28. ))
  29. .should.equal true
  30. describe "emitToAll", ->
  31. beforeEach ->
  32. @EditorRealTimeController.emitToRoom = sinon.stub()
  33. @EditorRealTimeController.emitToAll @message, @payload...
  34. it "should emit to the room 'all'", ->
  35. @EditorRealTimeController.emitToRoom
  36. .calledWith("all", @message, @payload...)
  37. .should.equal true