Просмотр исходного кода

add unit tests for skipping history flush

Brian Gough 7 лет назад
Родитель
Сommit
e75f2cc325

+ 22 - 0
services/document-updater/test/unit/coffee/HistoryManager/HistoryManagerTests.coffee

@@ -46,6 +46,28 @@ describe "HistoryManager", ->
 				.calledWith({url: "#{@Settings.apis.project_history.url}/project/#{@project_id}/flush", qs:{background:true}})
 				.should.equal true
 
+	describe "flushProjectChanges", ->
+
+		describe "in the normal case", ->
+			beforeEach ->
+				@request.post = sinon.stub().callsArgWith(1, null, statusCode: 204)
+				@HistoryManager.flushProjectChanges @project_id, {background:true}
+
+			it "should send a request to the project history api", ->
+				@request.post
+					.calledWith({url: "#{@Settings.apis.project_history.url}/project/#{@project_id}/flush", qs:{background:true}})
+					.should.equal true
+
+		describe "with the skip_history_flush option", ->
+			beforeEach ->
+				@request.post = sinon.stub()
+				@HistoryManager.flushProjectChanges @project_id, {skip_history_flush:true}
+
+			it "should not send a request to the project history api", ->
+				@request.post
+					.called
+					.should.equal false
+
 	describe "recordAndFlushHistoryOps", ->
 		beforeEach ->
 			@ops = [ 'mock-ops' ]

+ 11 - 0
services/document-updater/test/unit/coffee/HttpController/HttpControllerTests.coffee

@@ -343,6 +343,17 @@ describe "HttpController", ->
 			it "should time the request", ->
 				@Metrics.Timer::done.called.should.equal true
 
+		describe "with the shutdown=true option from realtime", ->
+			beforeEach ->
+				@ProjectManager.flushAndDeleteProjectWithLocks = sinon.stub().callsArgWith(2)
+				@req.query = {background:true, shutdown:true}
+				@HttpController.deleteProject(@req, @res, @next)
+
+			it "should pass the skip_history_flush option when flushing the project", ->
+				@ProjectManager.flushAndDeleteProjectWithLocks
+					.calledWith(@project_id, {background:true, skip_history_flush:true})
+					.should.equal true
+
 		describe "when an errors occurs", ->
 			beforeEach ->
 				@ProjectManager.flushAndDeleteProjectWithLocks = sinon.stub().callsArgWith(2, new Error("oops"))