| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- should = require('chai').should()
- SandboxedModule = require('sandboxed-module')
- assert = require('assert')
- path = require('path')
- sinon = require('sinon')
- modulePath = path.join __dirname, "../../../../app/js/Features/Chat/ChatApiHandler"
- expect = require("chai").expect
- describe "ChatApiHandler", ->
- beforeEach ->
- @settings =
- apis:
- chat:
- internal_url:"chat.sharelatex.env"
- @request = sinon.stub()
- @ChatApiHandler = SandboxedModule.require modulePath, requires:
- "settings-sharelatex": @settings
- "logger-sharelatex": { log: sinon.stub(), error: sinon.stub() }
- "request": @request
- @project_id = "3213213kl12j"
- @user_id = "2k3jlkjs9"
- @content = "my message here"
- @callback = sinon.stub()
- describe "sendGlobalMessage", ->
- describe "successfully", ->
- beforeEach ->
- @message = { "mock": "message" }
- @request.callsArgWith(1, null, {statusCode: 200}, @message)
- @ChatApiHandler.sendGlobalMessage @project_id, @user_id, @content, @callback
-
- it "should post the data to the chat api", ->
- @request.calledWith({
- url: "#{@settings.apis.chat.internal_url}/project/#{@project_id}/messages"
- method: "POST"
- json:
- content: @content
- user_id: @user_id
- }).should.equal true
- it "should return the message from the post", ->
- @callback.calledWith(null, @message).should.equal true
-
- describe "with a non-success status code", ->
- beforeEach ->
- @request.callsArgWith(1, null, {statusCode: 500})
- @ChatApiHandler.sendGlobalMessage @project_id, @user_id, @content, @callback
-
- it "should return an error", ->
- error = new Error()
- error.statusCode = 500
- @callback.calledWith(error).should.equal true
- describe "getGlobalMessages", ->
- beforeEach ->
- @messages = [{ "mock": "message" }]
- @limit = 30
- @before = "1234"
- describe "successfully", ->
- beforeEach ->
- @request.callsArgWith(1, null, {statusCode: 200}, @messages)
- @ChatApiHandler.getGlobalMessages @project_id, @limit, @before, @callback
-
- it "should make get request for room to chat api", ->
- @request.calledWith({
- method: "GET"
- url: "#{@settings.apis.chat.internal_url}/project/#{@project_id}/messages"
- qs:
- limit: @limit
- before: @before
- json: true
- }).should.equal true
-
- it "should return the messages from the request", ->
- @callback.calledWith(null, @messages).should.equal true
- describe "with failure error code", ->
- beforeEach ->
- @request.callsArgWith(1, null, {statusCode: 500}, null)
- @ChatApiHandler.getGlobalMessages @project_id, @limit, @before, @callback
-
- it "should return an error", ->
- error = new Error()
- error.statusCode = 500
- @callback.calledWith(error).should.equal true
|