| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- sinon = require "sinon"
- chai = require("chai")
- chai.should()
- async = require "async"
- rclient = require("redis").createClient()
- MockWebApi = require "./helpers/MockWebApi"
- DocUpdaterClient = require "./helpers/DocUpdaterClient"
- describe "Track changes", ->
- describe "tracking changes", ->
- before (done) ->
- @project_id = DocUpdaterClient.randomId()
- @user_id = DocUpdaterClient.randomId()
- @doc = {
- id: DocUpdaterClient.randomId()
- lines: ["aaa"]
- }
- @updates = [{
- doc: @doc.id
- op: [{ i: "123", p: 1 }]
- v: 0
- meta: { user_id: @user_id }
- }, {
- doc: @doc.id
- op: [{ i: "456", p: 5 }]
- v: 1
- meta: { user_id: @user_id, tc: 1 }
- }, {
- doc: @doc.id
- op: [{ d: "12", p: 1 }]
- v: 2
- meta: { user_id: @user_id }
- }]
- MockWebApi.insertDoc @project_id, @doc.id, {
- lines: @doc.lines
- version: 0
- }
- jobs = []
- for update in @updates
- do (update) =>
- jobs.push (callback) => DocUpdaterClient.sendUpdate @project_id, @doc.id, update, callback
- DocUpdaterClient.preloadDoc @project_id, @doc.id, (error) =>
- throw error if error?
- async.series jobs, (error) ->
- throw error if error?
- setTimeout done, 200
-
- it "should set the updated track changes entries in redis", (done) ->
- console.log "TODO: GET ME FROM HTTP REQUEST"
- rclient.get "TrackChangesEntries:#{@doc.id}", (error, value) =>
- throw error if error?
- entries = JSON.parse(value)
- change = entries.changes[0]
- change.op.should.deep.equal { i: "456", p: 3 }
- change.metadata.user_id.should.equal @user_id
- done()
|