|
|
@@ -10,6 +10,7 @@ describe "TrackChangesManager", ->
|
|
|
"settings-sharelatex": @Settings = {}
|
|
|
"logger-sharelatex": @logger = { log: sinon.stub(), error: sinon.stub() }
|
|
|
"./RedisManager": @RedisManager = {}
|
|
|
+ @project_id = "mock-project-id"
|
|
|
@doc_id = "mock-doc-id"
|
|
|
@callback = sinon.stub()
|
|
|
|
|
|
@@ -21,11 +22,11 @@ describe "TrackChangesManager", ->
|
|
|
describe "successfully", ->
|
|
|
beforeEach ->
|
|
|
@request.post = sinon.stub().callsArgWith(1, null, statusCode: 204)
|
|
|
- @TrackChangesManager.flushDocChanges @doc_id, @callback
|
|
|
+ @TrackChangesManager.flushDocChanges @project_id, @doc_id, @callback
|
|
|
|
|
|
it "should send a request to the track changes api", ->
|
|
|
@request.post
|
|
|
- .calledWith("#{@Settings.apis.trackchanges.url}/doc/#{@doc_id}/flush")
|
|
|
+ .calledWith("#{@Settings.apis.trackchanges.url}/project/#{@project_id}/doc/#{@doc_id}/flush")
|
|
|
.should.equal true
|
|
|
|
|
|
it "should return the callback", ->
|
|
|
@@ -34,7 +35,7 @@ describe "TrackChangesManager", ->
|
|
|
describe "when the track changes api returns an error", ->
|
|
|
beforeEach ->
|
|
|
@request.post = sinon.stub().callsArgWith(1, null, statusCode: 500)
|
|
|
- @TrackChangesManager.flushDocChanges @doc_id, @callback
|
|
|
+ @TrackChangesManager.flushDocChanges @project_id, @doc_id, @callback
|
|
|
|
|
|
it "should return the callback with an error", ->
|
|
|
@callback.calledWith(new Error("track changes api return non-success code: 500")).should.equal true
|
|
|
@@ -42,7 +43,7 @@ describe "TrackChangesManager", ->
|
|
|
describe "pushUncompressedHistoryOp", ->
|
|
|
beforeEach ->
|
|
|
@op = "mock-op"
|
|
|
- @TrackChangesManager.flushDocChanges = sinon.stub().callsArg(1)
|
|
|
+ @TrackChangesManager.flushDocChanges = sinon.stub().callsArg(2)
|
|
|
|
|
|
describe "when the doc is under the load manager threshold", ->
|
|
|
beforeEach ->
|
|
|
@@ -52,7 +53,7 @@ describe "TrackChangesManager", ->
|
|
|
describe "pushing the op", ->
|
|
|
beforeEach ->
|
|
|
@RedisManager.pushUncompressedHistoryOp = sinon.stub().callsArgWith(2, null, 1)
|
|
|
- @TrackChangesManager.pushUncompressedHistoryOp @doc_id, @op, @callback
|
|
|
+ @TrackChangesManager.pushUncompressedHistoryOp @project_id, @doc_id, @op, @callback
|
|
|
|
|
|
it "should push the op into redis", ->
|
|
|
@RedisManager.pushUncompressedHistoryOp
|
|
|
@@ -69,25 +70,26 @@ describe "TrackChangesManager", ->
|
|
|
beforeEach ->
|
|
|
@RedisManager.pushUncompressedHistoryOp =
|
|
|
sinon.stub().callsArgWith(2, null, 2 * @TrackChangesManager.FLUSH_EVERY_N_OPS)
|
|
|
- @TrackChangesManager.pushUncompressedHistoryOp @doc_id, @op, @callback
|
|
|
+ @TrackChangesManager.pushUncompressedHistoryOp @project_id, @doc_id, @op, @callback
|
|
|
|
|
|
it "should tell the track changes api to flush", ->
|
|
|
@TrackChangesManager.flushDocChanges
|
|
|
- .calledWith(@doc_id)
|
|
|
+ .calledWith(@project_id, @doc_id)
|
|
|
.should.equal true
|
|
|
|
|
|
describe "when TrackChangesManager errors", ->
|
|
|
beforeEach ->
|
|
|
@RedisManager.pushUncompressedHistoryOp =
|
|
|
sinon.stub().callsArgWith(2, null, 2 * @TrackChangesManager.FLUSH_EVERY_N_OPS)
|
|
|
- @TrackChangesManager.flushDocChanges = sinon.stub().callsArgWith(1, @error = new Error("oops"))
|
|
|
- @TrackChangesManager.pushUncompressedHistoryOp @doc_id, @op, @callback
|
|
|
+ @TrackChangesManager.flushDocChanges = sinon.stub().callsArgWith(2, @error = new Error("oops"))
|
|
|
+ @TrackChangesManager.pushUncompressedHistoryOp @project_id, @doc_id, @op, @callback
|
|
|
|
|
|
it "should log out the error", ->
|
|
|
@logger.error
|
|
|
.calledWith(
|
|
|
err: @error
|
|
|
doc_id: @doc_id
|
|
|
+ project_id: @project_id
|
|
|
"error flushing doc to track changes api"
|
|
|
)
|
|
|
.should.equal true
|
|
|
@@ -97,7 +99,7 @@ describe "TrackChangesManager", ->
|
|
|
@RedisManager.getHistoryLoadManagerThreshold = sinon.stub().callsArgWith(0, null, 40)
|
|
|
@TrackChangesManager.getLoadManagerBucket = sinon.stub().returns(50)
|
|
|
@RedisManager.pushUncompressedHistoryOp = sinon.stub().callsArgWith(2, null, 1)
|
|
|
- @TrackChangesManager.pushUncompressedHistoryOp @doc_id, @op, @callback
|
|
|
+ @TrackChangesManager.pushUncompressedHistoryOp @project_id, @doc_id, @op, @callback
|
|
|
|
|
|
it "should not push the op", ->
|
|
|
@RedisManager.pushUncompressedHistoryOp.called.should.equal false
|