diff --git a/services/document-updater/app/coffee/DocumentManager.coffee b/services/document-updater/app/coffee/DocumentManager.coffee index 258d55bb65..85a7a4263c 100644 --- a/services/document-updater/app/coffee/DocumentManager.coffee +++ b/services/document-updater/app/coffee/DocumentManager.coffee @@ -26,20 +26,20 @@ module.exports = DocumentManager = else callback null, lines, version, track_changes_entries, true - getDocAndRecentOps: (project_id, doc_id, fromVersion, _callback = (error, lines, version, recentOps) ->) -> + getDocAndRecentOps: (project_id, doc_id, fromVersion, _callback = (error, lines, version, recentOps, track_changes_entries) ->) -> timer = new Metrics.Timer("docManager.getDocAndRecentOps") callback = (args...) -> timer.done() _callback(args...) - DocumentManager.getDoc project_id, doc_id, (error, lines, version) -> + DocumentManager.getDoc project_id, doc_id, (error, lines, version, track_changes_entries) -> return callback(error) if error? if fromVersion == -1 - callback null, lines, version, [] + callback null, lines, version, [], track_changes_entries else RedisManager.getPreviousDocOps doc_id, fromVersion, version, (error, ops) -> return callback(error) if error? - callback null, lines, version, ops + callback null, lines, version, ops, track_changes_entries setDoc: (project_id, doc_id, newLines, source, user_id, _callback = (error) ->) -> timer = new Metrics.Timer("docManager.setDoc") diff --git a/services/document-updater/app/coffee/HttpController.coffee b/services/document-updater/app/coffee/HttpController.coffee index dc74833697..fb916da045 100644 --- a/services/document-updater/app/coffee/HttpController.coffee +++ b/services/document-updater/app/coffee/HttpController.coffee @@ -18,7 +18,7 @@ module.exports = HttpController = else fromVersion = -1 - DocumentManager.getDocAndRecentOpsWithLock project_id, doc_id, fromVersion, (error, lines, version, ops) -> + DocumentManager.getDocAndRecentOpsWithLock project_id, doc_id, fromVersion, (error, lines, version, ops, track_changes_entries) -> timer.done() return next(error) if error? logger.log project_id: project_id, doc_id: doc_id, "got doc via http" @@ -29,6 +29,7 @@ module.exports = HttpController = lines: lines version: version ops: ops + track_changes_entries: track_changes_entries _getTotalSizeOfLines: (lines) -> size = 0 diff --git a/services/document-updater/test/acceptance/coffee/TrackChangesTests.coffee b/services/document-updater/test/acceptance/coffee/TrackChangesTests.coffee index 43401cef6d..e3577fd6d7 100644 --- a/services/document-updater/test/acceptance/coffee/TrackChangesTests.coffee +++ b/services/document-updater/test/acceptance/coffee/TrackChangesTests.coffee @@ -47,10 +47,9 @@ describe "Track changes", -> 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) => + DocUpdaterClient.getDoc @project_id, @doc.id, (error, res, data) => throw error if error? - entries = JSON.parse(value) + entries = data.track_changes_entries change = entries.changes[0] change.op.should.deep.equal { i: "456", p: 3 } change.metadata.user_id.should.equal @user_id diff --git a/services/document-updater/test/unit/coffee/DocumentManager/DocumentManagerTests.coffee b/services/document-updater/test/unit/coffee/DocumentManager/DocumentManagerTests.coffee index d29a569d46..3a1db1961c 100644 --- a/services/document-updater/test/unit/coffee/DocumentManager/DocumentManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/DocumentManager/DocumentManagerTests.coffee @@ -117,7 +117,7 @@ describe "DocumentManager", -> .should.equal true it "should call the callback with the doc info", -> - @callback.calledWith(null, @lines, @version, @ops).should.equal true + @callback.calledWith(null, @lines, @version, @ops, @track_changes_entries).should.equal true it "should time the execution", -> @Metrics.Timer::done.called.should.equal true @@ -137,7 +137,7 @@ describe "DocumentManager", -> @RedisManager.getPreviousDocOps.called.should.equal false it "should call the callback with the doc info", -> - @callback.calledWith(null, @lines, @version, []).should.equal true + @callback.calledWith(null, @lines, @version, [], @track_changes_entries).should.equal true it "should time the execution", -> @Metrics.Timer::done.called.should.equal true diff --git a/services/document-updater/test/unit/coffee/HttpController/getDocTests.coffee b/services/document-updater/test/unit/coffee/HttpController/getDocTests.coffee index 17e5ad8e08..8ad2966b23 100644 --- a/services/document-updater/test/unit/coffee/HttpController/getDocTests.coffee +++ b/services/document-updater/test/unit/coffee/HttpController/getDocTests.coffee @@ -22,6 +22,7 @@ describe "HttpController.getDoc", -> @ops = ["mock-op-1", "mock-op-2"] @version = 42 @fromVersion = 42 + @track_changes_entries = { changes: "mock", comments: "mock" } @res = send: sinon.stub() @req = @@ -32,7 +33,7 @@ describe "HttpController.getDoc", -> describe "when the document exists and no recent ops are requested", -> beforeEach -> - @DocumentManager.getDocAndRecentOpsWithLock = sinon.stub().callsArgWith(3, null, @lines, @version, []) + @DocumentManager.getDocAndRecentOpsWithLock = sinon.stub().callsArgWith(3, null, @lines, @version, [], @track_changes_entries) @HttpController.getDoc(@req, @res, @next) it "should get the doc", -> @@ -47,6 +48,7 @@ describe "HttpController.getDoc", -> lines: @lines version: @version ops: [] + track_changes_entries: @track_changes_entries })) .should.equal true