diff --git a/services/document-updater/test/unit/coffee/ShareJsUpdateManager/ShareJsUpdateManagerTests.coffee b/services/document-updater/test/unit/coffee/ShareJsUpdateManager/ShareJsUpdateManagerTests.coffee index 94806a1a9d..f3b871149d 100644 --- a/services/document-updater/test/unit/coffee/ShareJsUpdateManager/ShareJsUpdateManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/ShareJsUpdateManager/ShareJsUpdateManagerTests.coffee @@ -17,12 +17,16 @@ describe "ShareJsUpdateManager", -> "./ShareJsDB" : @ShareJsDB = { mockDB: true } "redis-sharelatex" : createClient: () => @rclient = auth:-> "logger-sharelatex": @logger = { log: sinon.stub() } + "./WebRedisManager": @WebRedisManager = {} globals: clearTimeout: @clearTimeout = sinon.stub() describe "applyUpdate", -> beforeEach -> + @lines = ["one", "two"] @version = 34 + @update = {p: 4, t: "foo"} + @updatedDocLines = ["onefoo", "two"] @model = applyOp: sinon.stub().callsArg(2) getSnapshot: sinon.stub() @@ -31,20 +35,19 @@ describe "ShareJsUpdateManager", -> @ShareJsUpdateManager.getNewShareJsModel = sinon.stub().returns(@model) @ShareJsUpdateManager._listenForOps = sinon.stub() @ShareJsUpdateManager.removeDocFromCache = sinon.stub().callsArg(1) - @update = {p: 4, t: "foo"} - @updatedDocLines = ["one", "two"] describe "successfully", -> beforeEach (done) -> @model.getSnapshot.callsArgWith(1, null, {snapshot: @updatedDocLines.join("\n"), v: @version}) @model.db.appliedOps["#{@project_id}:#{@doc_id}"] = @appliedOps = ["mock-ops"] - @ShareJsUpdateManager.applyUpdate @project_id, @doc_id, @update, (err, docLines, version, appliedOps) => + @ShareJsUpdateManager.applyUpdate @project_id, @doc_id, @update, @lines, @version, (err, docLines, version, appliedOps) => @callback(err, docLines, version, appliedOps) done() it "should create a new ShareJs model", -> @ShareJsUpdateManager.getNewShareJsModel - .called.should.equal true + .calledWith(@project_id, @doc_id, @lines, @version) + .should.equal true it "should listen for ops on the model", -> @ShareJsUpdateManager._listenForOps @@ -69,7 +72,7 @@ describe "ShareJsUpdateManager", -> @error = new Error("Something went wrong") @ShareJsUpdateManager._sendError = sinon.stub() @model.applyOp = sinon.stub().callsArgWith(2, @error) - @ShareJsUpdateManager.applyUpdate @project_id, @doc_id, @update, (err, docLines, version) => + @ShareJsUpdateManager.applyUpdate @project_id, @doc_id, @update, @lines, @version, (err, docLines, version) => @callback(err, docLines, version) done() @@ -86,7 +89,7 @@ describe "ShareJsUpdateManager", -> @error = new Error("Something went wrong") @ShareJsUpdateManager._sendError = sinon.stub() @model.getSnapshot.callsArgWith(1, @error) - @ShareJsUpdateManager.applyUpdate @project_id, @doc_id, @update, (err, docLines, version) => + @ShareJsUpdateManager.applyUpdate @project_id, @doc_id, @update, @lines, @version, (err, docLines, version) => @callback(err, docLines, version) done() @@ -114,22 +117,22 @@ describe "ShareJsUpdateManager", -> @opData = op: {t: "foo", p: 1} meta: source: "bar" - @rclient.publish = sinon.stub() + @WebRedisManager.sendData = sinon.stub() @callback("#{@project_id}:#{@doc_id}", @opData) it "should publish the op to redis", -> - @rclient.publish - .calledWith("applied-ops", JSON.stringify(project_id: @project_id, doc_id: @doc_id, op: @opData)) + @WebRedisManager.sendData + .calledWith({project_id: @project_id, doc_id: @doc_id, op: @opData}) .should.equal true describe "_sendError", -> beforeEach -> @error_text = "Something went wrong" - @rclient.publish = sinon.stub() + @WebRedisManager.sendData = sinon.stub() @ShareJsUpdateManager._sendError(@project_id, @doc_id, new Error(@error_text)) it "should publish the error to the redis stream", -> - @rclient.publish - .calledWith("applied-ops", JSON.stringify(project_id: @project_id, doc_id: @doc_id, error: @error_text)) + @WebRedisManager.sendData + .calledWith({project_id: @project_id, doc_id: @doc_id, error: @error_text}) .should.equal true