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

Fix joinDoc tests not passing options arg and restructure tests

Alasdair Smith 9 лет назад
Родитель
Сommit
b8d3f34e54
1 измененных файлов с 24 добавлено и 14 удалено
  1. 24 14
      services/real-time/test/unit/coffee/WebsocketControllerTests.coffee

+ 24 - 14
services/real-time/test/unit/coffee/WebsocketControllerTests.coffee

@@ -221,49 +221,59 @@ describe 'WebsocketController', ->
 			@version = 42
 			@version = 42
 			@ops = ["mock", "ops"]
 			@ops = ["mock", "ops"]
 			@ranges = { "mock": "ranges" }
 			@ranges = { "mock": "ranges" }
+			@options = {}
 			
 			
 			@client.params.project_id = @project_id
 			@client.params.project_id = @project_id
 			@AuthorizationManager.addAccessToDoc = sinon.stub()
 			@AuthorizationManager.addAccessToDoc = sinon.stub()
 			@AuthorizationManager.assertClientCanViewProject = sinon.stub().callsArgWith(1, null)
 			@AuthorizationManager.assertClientCanViewProject = sinon.stub().callsArgWith(1, null)
 			@DocumentUpdaterManager.getDocument = sinon.stub().callsArgWith(3, null, @doc_lines, @version, @ranges, @ops)
 			@DocumentUpdaterManager.getDocument = sinon.stub().callsArgWith(3, null, @doc_lines, @version, @ranges, @ops)
-			
-		describe "with a fromVersion", ->
+
+		describe "works", ->
 			beforeEach ->
 			beforeEach ->
-				@fromVersion = 40
-				@WebsocketController.joinDoc @client, @doc_id, @fromVersion, @callback
-				
+				@WebsocketController.joinDoc @client, @doc_id, -1, @options, @callback
+
 			it "should check that the client is authorized to view the project", ->
 			it "should check that the client is authorized to view the project", ->
 				@AuthorizationManager.assertClientCanViewProject
 				@AuthorizationManager.assertClientCanViewProject
 					.calledWith(@client)
 					.calledWith(@client)
 					.should.equal true
 					.should.equal true
-					
-			it "should get the document from the DocumentUpdaterManager", ->
+
+			it "should get the document from the DocumentUpdaterManager with fromVersion", ->
 				@DocumentUpdaterManager.getDocument
 				@DocumentUpdaterManager.getDocument
-					.calledWith(@project_id, @doc_id, @fromVersion)
+					.calledWith(@project_id, @doc_id, -1)
 					.should.equal true
 					.should.equal true
 
 
 			it "should add permissions for the client to access the doc", ->
 			it "should add permissions for the client to access the doc", ->
 				@AuthorizationManager.addAccessToDoc
 				@AuthorizationManager.addAccessToDoc
 					.calledWith(@client, @doc_id)
 					.calledWith(@client, @doc_id)
 					.should.equal true
 					.should.equal true
-					
+
 			it "should join the client to room for the doc_id", ->
 			it "should join the client to room for the doc_id", ->
 				@client.join
 				@client.join
 					.calledWith(@doc_id)
 					.calledWith(@doc_id)
 					.should.equal true
 					.should.equal true
-					
+
 			it "should call the callback with the lines, version, ranges and ops", ->
 			it "should call the callback with the lines, version, ranges and ops", ->
 				@callback
 				@callback
 					.calledWith(null, @doc_lines, @version, @ops, @ranges)
 					.calledWith(null, @doc_lines, @version, @ops, @ranges)
 					.should.equal true
 					.should.equal true
-					
+
 			it "should increment the join-doc metric", ->
 			it "should increment the join-doc metric", ->
 				@metrics.inc.calledWith("editor.join-doc").should.equal true
 				@metrics.inc.calledWith("editor.join-doc").should.equal true
+
+		describe "with a fromVersion", ->
+			beforeEach ->
+				@fromVersion = 40
+				@WebsocketController.joinDoc @client, @doc_id, @fromVersion, @options, @callback
 					
 					
+			it "should get the document from the DocumentUpdaterManager with fromVersion", ->
+				@DocumentUpdaterManager.getDocument
+					.calledWith(@project_id, @doc_id, @fromVersion)
+					.should.equal true
+
 		describe "with doclines that need escaping", ->
 		describe "with doclines that need escaping", ->
 			beforeEach ->
 			beforeEach ->
 				@doc_lines.push ["räksmörgås"]
 				@doc_lines.push ["räksmörgås"]
-				@WebsocketController.joinDoc @client, @doc_id, -1, @callback
+				@WebsocketController.joinDoc @client, @doc_id, -1, @options, @callback
 						
 						
 			it "should call the callback with the escaped lines", ->
 			it "should call the callback with the escaped lines", ->
 				escaped_lines = @callback.args[0][1]
 				escaped_lines = @callback.args[0][1]
@@ -271,11 +281,11 @@ describe 'WebsocketController', ->
 				escaped_word.should.equal 'räksmörgås'
 				escaped_word.should.equal 'räksmörgås'
 				# Check that unescaping works
 				# Check that unescaping works
 				decodeURIComponent(escape(escaped_word)).should.equal "räksmörgås"
 				decodeURIComponent(escape(escaped_word)).should.equal "räksmörgås"
-				
+
 		describe "when not authorized", ->
 		describe "when not authorized", ->
 			beforeEach ->
 			beforeEach ->
 				@AuthorizationManager.assertClientCanViewProject = sinon.stub().callsArgWith(1, @err = new Error("not authorized"))
 				@AuthorizationManager.assertClientCanViewProject = sinon.stub().callsArgWith(1, @err = new Error("not authorized"))
-				@WebsocketController.joinDoc @client, @doc_id, -1, @callback
+				@WebsocketController.joinDoc @client, @doc_id, -1, @options, @callback
 				
 				
 			it "should call the callback with an error", ->
 			it "should call the callback with an error", ->
 				@callback.calledWith(@err).should.equal true
 				@callback.calledWith(@err).should.equal true