/* * decaffeinate suggestions: * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ const {ObjectId} = require("../../../app/js/mongojs"); const { expect } = require("chai"); const async = require("async"); const crypto = require("crypto"); const ChatClient = require("./helpers/ChatClient"); const ChatApp = require("./helpers/ChatApp"); describe("Getting messages", function() { before(function(done) { this.user_id1 = ObjectId().toString(); this.user_id2 = ObjectId().toString(); this.content1 = "foo bar"; this.content2 = "hello world"; return ChatApp.ensureRunning(done); }); describe("globally", function() { before(function(done) { this.project_id = ObjectId().toString(); return async.series([ cb => ChatClient.sendGlobalMessage(this.project_id, this.user_id1, this.content1, cb), cb => ChatClient.sendGlobalMessage(this.project_id, this.user_id2, this.content2, cb) ], done); }); return it("should contain the messages and populated users when getting the messages", function(done) { return ChatClient.getGlobalMessages(this.project_id, (error, response, messages) => { expect(messages.length).to.equal(2); messages.reverse(); expect(messages[0].content).to.equal(this.content1); expect(messages[0].user_id).to.equal(this.user_id1); expect(messages[1].content).to.equal(this.content2); expect(messages[1].user_id).to.equal(this.user_id2); return done(); }); }); }); return describe("from all the threads", function() { before(function(done) { this.project_id = ObjectId().toString(); this.thread_id1 = ObjectId().toString(); this.thread_id2 = ObjectId().toString(); return async.series([ cb => ChatClient.sendMessage(this.project_id, this.thread_id1, this.user_id1, "one", cb), cb => ChatClient.sendMessage(this.project_id, this.thread_id2, this.user_id2, "two", cb), cb => ChatClient.sendMessage(this.project_id, this.thread_id1, this.user_id1, "three", cb), cb => ChatClient.sendMessage(this.project_id, this.thread_id2, this.user_id2, "four", cb) ], done); }); return it("should contain a dictionary of threads with messages with populated users", function(done) { return ChatClient.getThreads(this.project_id, (error, response, threads) => { expect(Object.keys(threads).length).to.equal(2); const thread1 = threads[this.thread_id1]; expect(thread1.messages.length).to.equal(2); const thread2 = threads[this.thread_id2]; expect(thread2.messages.length).to.equal(2); expect(thread1.messages[0].content).to.equal("one"); expect(thread1.messages[0].user_id).to.equal(this.user_id1); expect(thread1.messages[1].content).to.equal("three"); expect(thread1.messages[1].user_id).to.equal(this.user_id1); expect(thread2.messages[0].content).to.equal("two"); expect(thread2.messages[0].user_id).to.equal(this.user_id2); expect(thread2.messages[1].content).to.equal("four"); expect(thread2.messages[1].user_id).to.equal(this.user_id2); return done(); }); }); }); });