mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-27 08:31:43 +00:00
89 lines
2.4 KiB
CoffeeScript
89 lines
2.4 KiB
CoffeeScript
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/ChatHandler"
|
|
expect = require("chai").expect
|
|
|
|
describe "ChatHandler", ->
|
|
|
|
beforeEach ->
|
|
|
|
@settings =
|
|
apis:
|
|
chat:
|
|
internal_url:"chat.sharelatex.env"
|
|
@request = sinon.stub()
|
|
@ChatHandler = SandboxedModule.require modulePath, requires:
|
|
"settings-sharelatex":@settings
|
|
"logger-sharelatex": log:->
|
|
"request": @request
|
|
@project_id = "3213213kl12j"
|
|
@user_id = "2k3jlkjs9"
|
|
@messageContent = "my message here"
|
|
|
|
describe "sending message", ->
|
|
|
|
beforeEach ->
|
|
@messageResponse =
|
|
message:"Details"
|
|
@request.callsArgWith(1, null, null, @messageResponse)
|
|
|
|
it "should post the data to the chat api", (done)->
|
|
|
|
@ChatHandler.sendMessage @project_id, @user_id, @messageContent, (err)=>
|
|
@opts =
|
|
method:"post"
|
|
json:
|
|
content:@messageContent
|
|
user_id:@user_id
|
|
uri:"#{@settings.apis.chat.internal_url}/room/#{@project_id}/messages"
|
|
@request.calledWith(@opts).should.equal true
|
|
done()
|
|
|
|
it "should return the message from the post", (done)->
|
|
@ChatHandler.sendMessage @project_id, @user_id, @messageContent, (err, returnedMessage)=>
|
|
returnedMessage.should.equal @messageResponse
|
|
done()
|
|
|
|
describe "get messages", ->
|
|
|
|
beforeEach ->
|
|
@returnedMessages = [{content:"hello world"}]
|
|
@request.callsArgWith(1, null, null, @returnedMessages)
|
|
@query = {}
|
|
|
|
it "should make get request for room to chat api", (done)->
|
|
|
|
@ChatHandler.getMessages @project_id, @query, (err)=>
|
|
@opts =
|
|
method:"get"
|
|
uri:"#{@settings.apis.chat.internal_url}/room/#{@project_id}/messages"
|
|
qs:{}
|
|
@request.calledWith(@opts).should.equal true
|
|
done()
|
|
|
|
it "should make get request for room to chat api with query string", (done)->
|
|
@query = {limit:5, before:12345, ignore:"this"}
|
|
|
|
@ChatHandler.getMessages @project_id, @query, (err)=>
|
|
@opts =
|
|
method:"get"
|
|
uri:"#{@settings.apis.chat.internal_url}/room/#{@project_id}/messages"
|
|
qs:
|
|
limit:5
|
|
before:12345
|
|
@request.calledWith(@opts).should.equal true
|
|
done()
|
|
|
|
it "should return the messages from the request", (done)->
|
|
@ChatHandler.getMessages @project_id, @query, (err, returnedMessages)=>
|
|
returnedMessages.should.equal @returnedMessages
|
|
done()
|
|
|
|
|
|
|
|
|
|
|
|
|