GettingUpdatesTests.coffee 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. sinon = require "sinon"
  2. chai = require("chai")
  3. chai.should()
  4. expect = chai.expect
  5. mongojs = require "../../../app/js/mongojs"
  6. db = mongojs.db
  7. ObjectId = mongojs.ObjectId
  8. Settings = require "settings-sharelatex"
  9. TrackChangesClient = require "./helpers/TrackChangesClient"
  10. describe "Getting updates", ->
  11. before (done) ->
  12. @now = Date.now()
  13. @to = @now
  14. @user_id = ObjectId().toString()
  15. @doc_id = ObjectId().toString()
  16. @project_id = ObjectId().toString()
  17. @minutes = 60 * 1000
  18. @updates = [{
  19. op: [{ i: "one ", p: 0 }]
  20. meta: { ts: @to - 4 * @minutes, user_id: @user_id }
  21. v: 3
  22. }, {
  23. op: [{ i: "two ", p: 4 }]
  24. meta: { ts: @to - 2 * @minutes, user_id: @user_id }
  25. v: 4
  26. }, {
  27. op: [{ i: "three ", p: 8 }]
  28. meta: { ts: @to, user_id: @user_id }
  29. v: @toVersion = 5
  30. }, {
  31. op: [{ i: "four", p: 14 }]
  32. meta: { ts: @to + 2 * @minutes, user_id: @user_id }
  33. v: 6
  34. }]
  35. TrackChangesClient.pushRawUpdates @doc_id, @updates, (error) =>
  36. throw error if error?
  37. TrackChangesClient.getUpdates @project_id, @doc_id, { to: @toVersion, limit: 2 }, (error, body) =>
  38. throw error if error?
  39. @updates = body.updates
  40. done()
  41. it "should return the diff", ->
  42. expect(@updates).to.deep.equal [{
  43. meta:
  44. start_ts: @to
  45. end_ts: @to
  46. user_id: @user_id
  47. v: 5
  48. }, {
  49. meta:
  50. start_ts: @to - 2 * @minutes
  51. end_ts: @to - 2 * @minutes
  52. user_id: @user_id
  53. v: 4
  54. }]