ResolvingAThreadTests.coffee 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. {ObjectId} = require "../../../app/js/mongojs"
  2. expect = require("chai").expect
  3. crypto = require "crypto"
  4. ChatClient = require "./helpers/ChatClient"
  5. describe "Resolving a thread", ->
  6. before ->
  7. @project_id = ObjectId().toString()
  8. @user_id = ObjectId().toString()
  9. describe "with a resolved thread", ->
  10. before (done) ->
  11. @thread_id = ObjectId().toString()
  12. @content = "resolved message"
  13. ChatClient.sendMessage @project_id, @thread_id, @user_id, @content, (error, response, body) =>
  14. expect(error).to.be.null
  15. expect(response.statusCode).to.equal 201
  16. ChatClient.resolveThread @project_id, @thread_id, @user_id, (error, response, body) =>
  17. expect(error).to.be.null
  18. expect(response.statusCode).to.equal 204
  19. done()
  20. it "should then list the thread as resolved", (done) ->
  21. ChatClient.getThreads @project_id, (error, response, threads) =>
  22. expect(error).to.be.null
  23. expect(response.statusCode).to.equal 200
  24. expect(threads[@thread_id].resolved).to.equal true
  25. expect(threads[@thread_id].resolved_by_user_id).to.equal @user_id
  26. resolved_at = new Date(threads[@thread_id].resolved_at)
  27. expect(new Date() - resolved_at).to.be.below 1000
  28. done()
  29. describe "when a thread is not resolved", ->
  30. before (done) ->
  31. @thread_id = ObjectId().toString()
  32. @content = "open message"
  33. ChatClient.sendMessage @project_id, @thread_id, @user_id, @content, (error, response, body) =>
  34. expect(error).to.be.null
  35. expect(response.statusCode).to.equal 201
  36. done()
  37. it "should not list the thread as resolved", (done) ->
  38. ChatClient.getThreads @project_id, (error, response, threads) =>
  39. expect(error).to.be.null
  40. expect(response.statusCode).to.equal 200
  41. expect(threads[@thread_id].resolved).to.be.undefined
  42. done()
  43. describe "when a thread is resolved then reopened", ->
  44. before (done) ->
  45. @thread_id = ObjectId().toString()
  46. @content = "resolved message"
  47. ChatClient.sendMessage @project_id, @thread_id, @user_id, @content, (error, response, body) =>
  48. expect(error).to.be.null
  49. expect(response.statusCode).to.equal 201
  50. ChatClient.resolveThread @project_id, @thread_id, @user_id, (error, response, body) =>
  51. expect(error).to.be.null
  52. expect(response.statusCode).to.equal 204
  53. ChatClient.reopenThread @project_id, @thread_id, (error, response, body) =>
  54. expect(error).to.be.null
  55. expect(response.statusCode).to.equal 204
  56. done()
  57. it "should not list the thread as resolved", (done) ->
  58. ChatClient.getThreads @project_id, (error, response, threads) =>
  59. expect(error).to.be.null
  60. expect(response.statusCode).to.equal 200
  61. expect(threads[@thread_id].resolved).to.be.undefined
  62. done()