2016-12-14 12:38:14 -05:00
|
|
|
{ObjectId} = require "../../../app/js/mongojs"
|
|
|
|
expect = require("chai").expect
|
|
|
|
|
|
|
|
MockWebApi = require "./helpers/MockWebApi"
|
|
|
|
ChatClient = require "./helpers/ChatClient"
|
|
|
|
|
|
|
|
describe "Sending a message", ->
|
2016-12-16 11:52:50 -05:00
|
|
|
before ->
|
2016-12-14 12:38:14 -05:00
|
|
|
@project_id = ObjectId().toString()
|
|
|
|
@user_id = ObjectId().toString()
|
2016-12-16 11:52:50 -05:00
|
|
|
@thread_id = ObjectId().toString()
|
|
|
|
MockWebApi.addUser @user_id, @user = {
|
|
|
|
id: @user_id
|
|
|
|
first_name: "Jane"
|
|
|
|
last_name: "Smith"
|
|
|
|
email: "jane@example.com"
|
|
|
|
}
|
|
|
|
|
|
|
|
describe "globally", ->
|
|
|
|
before (done) ->
|
|
|
|
@content = "global message"
|
|
|
|
ChatClient.sendGlobalMessage @project_id, @user_id, @content, (error, response, body) =>
|
|
|
|
expect(error).to.be.null
|
|
|
|
expect(response.statusCode).to.equal 201
|
|
|
|
expect(body.content).to.equal @content
|
|
|
|
expect(body.user.id).to.equal @user_id
|
|
|
|
expect(body.room.id).to.equal @project_id
|
|
|
|
done()
|
|
|
|
|
|
|
|
it "should then list the message in the project messages", (done) ->
|
|
|
|
ChatClient.getGlobalMessages @project_id, (error, response, messages) =>
|
|
|
|
expect(error).to.be.null
|
|
|
|
expect(response.statusCode).to.equal 200
|
|
|
|
expect(messages.length).to.equal 1
|
|
|
|
expect(messages[0].content).to.equal @content
|
|
|
|
done()
|
|
|
|
|
|
|
|
describe "to a thread", ->
|
|
|
|
before (done) ->
|
|
|
|
@content = "thread message"
|
|
|
|
ChatClient.sendMessage @project_id, @thread_id, @user_id, @content, (error, response, body) =>
|
|
|
|
expect(error).to.be.null
|
|
|
|
expect(response.statusCode).to.equal 201
|
|
|
|
expect(body.content).to.equal @content
|
|
|
|
expect(body.user.id).to.equal @user_id
|
|
|
|
expect(body.room.id).to.equal @project_id
|
|
|
|
done()
|
|
|
|
|
|
|
|
it "should then list the message in the threads", (done) ->
|
|
|
|
ChatClient.getThreads @project_id, (error, response, threads) =>
|
|
|
|
expect(error).to.be.null
|
|
|
|
expect(response.statusCode).to.equal 200
|
2017-01-04 08:51:08 -05:00
|
|
|
expect(threads[@thread_id].messages.length).to.equal 1
|
|
|
|
expect(threads[@thread_id].messages[0].content).to.equal @content
|
2016-12-16 11:52:50 -05:00
|
|
|
done()
|
|
|
|
|
|
|
|
describe "with a malformed user_id", ->
|
|
|
|
it "should return a graceful error", (done) ->
|
|
|
|
ChatClient.sendMessage @project_id, @thread_id, "malformed-user", "content", (error, response, body) =>
|
|
|
|
expect(response.statusCode).to.equal 400
|
|
|
|
expect(body).to.equal "Invalid user_id"
|
|
|
|
done()
|
|
|
|
|
|
|
|
describe "with a malformed project_id", ->
|
|
|
|
it "should return a graceful error", (done) ->
|
|
|
|
ChatClient.sendMessage "malformed-project", @thread_id, @user_id, "content", (error, response, body) =>
|
|
|
|
expect(response.statusCode).to.equal 400
|
|
|
|
expect(body).to.equal "Invalid project_id"
|
|
|
|
done()
|
2016-12-14 12:38:14 -05:00
|
|
|
|
2016-12-16 11:52:50 -05:00
|
|
|
describe "with a malformed thread_id", ->
|
|
|
|
it "should return a graceful error", (done) ->
|
|
|
|
ChatClient.sendMessage @project_id, "malformed-thread-id", @user_id, "content", (error, response, body) =>
|
|
|
|
expect(response.statusCode).to.equal 400
|
|
|
|
expect(body).to.equal "Invalid thread_id"
|
|
|
|
done()
|