Brian Gough 8 лет назад
Родитель
Сommit
75a5428cbf

+ 19 - 10
services/document-updater/test/acceptance/coffee/ApplyingUpdatesToProjectStructureTests.coffee

@@ -13,6 +13,7 @@ DocUpdaterApp = require "./helpers/DocUpdaterApp"
 describe "Applying updates to a project's structure", ->
 	before ->
 		@user_id = 'user-id-123'
+		@version = 1234
 
 	describe "renaming a file", ->
 		before (done) ->
@@ -24,7 +25,7 @@ describe "Applying updates to a project's structure", ->
 			@fileUpdates = [ @fileUpdate ]
 			DocUpdaterApp.ensureRunning (error) =>
 				throw error if error?
-				DocUpdaterClient.sendProjectUpdate @project_id, @user_id, [], @fileUpdates, (error) ->
+				DocUpdaterClient.sendProjectUpdate @project_id, @user_id, [], @fileUpdates, @version, (error) ->
 					throw error if error?
 					setTimeout done, 200
 
@@ -38,6 +39,7 @@ describe "Applying updates to a project's structure", ->
 				update.new_pathname.should.equal '/new-file-path'
 				update.meta.user_id.should.equal @user_id
 				update.meta.ts.should.be.a('string')
+				update.version.should.equal "#{@version}.0"
 
 				done()
 
@@ -52,7 +54,7 @@ describe "Applying updates to a project's structure", ->
 		describe "when the document is not loaded", ->
 			before (done) ->
 				@project_id = DocUpdaterClient.randomId()
-				DocUpdaterClient.sendProjectUpdate @project_id, @user_id, @docUpdates, [], (error) ->
+				DocUpdaterClient.sendProjectUpdate @project_id, @user_id, @docUpdates, [], @version, (error) ->
 					throw error if error?
 					setTimeout done, 200
 
@@ -66,6 +68,7 @@ describe "Applying updates to a project's structure", ->
 					update.new_pathname.should.equal '/new-doc-path'
 					update.meta.user_id.should.equal @user_id
 					update.meta.ts.should.be.a('string')
+					update.version.should.equal "#{@version}.0"
 
 					done()
 
@@ -76,7 +79,7 @@ describe "Applying updates to a project's structure", ->
 				DocUpdaterClient.preloadDoc @project_id, @docUpdate.id, (error) =>
 					throw error if error?
 					sinon.spy MockWebApi, "getDocument"
-					DocUpdaterClient.sendProjectUpdate @project_id, @user_id, @docUpdates, [], (error) ->
+					DocUpdaterClient.sendProjectUpdate @project_id, @user_id, @docUpdates, [], @version, (error) ->
 						throw error if error?
 						setTimeout done, 200
 
@@ -98,6 +101,7 @@ describe "Applying updates to a project's structure", ->
 					update.new_pathname.should.equal '/new-doc-path'
 					update.meta.user_id.should.equal @user_id
 					update.meta.ts.should.be.a('string')
+					update.version.should.equal "#{@version}.0"
 
 					done()
 
@@ -109,7 +113,7 @@ describe "Applying updates to a project's structure", ->
 				pathname: '/file-path'
 				url: 'filestore.example.com'
 			@fileUpdates = [ @fileUpdate ]
-			DocUpdaterClient.sendProjectUpdate @project_id, @user_id, [], @fileUpdates, (error) ->
+			DocUpdaterClient.sendProjectUpdate @project_id, @user_id, [], @fileUpdates, @version, (error) ->
 				throw error if error?
 				setTimeout done, 200
 
@@ -123,6 +127,7 @@ describe "Applying updates to a project's structure", ->
 				update.url.should.equal 'filestore.example.com'
 				update.meta.user_id.should.equal @user_id
 				update.meta.ts.should.be.a('string')
+				update.version.should.equal "#{@version}.0"
 
 				done()
 
@@ -134,7 +139,7 @@ describe "Applying updates to a project's structure", ->
 				pathname: '/file-path'
 				docLines: 'a\nb'
 			@docUpdates = [ @docUpdate ]
-			DocUpdaterClient.sendProjectUpdate @project_id, @user_id, @docUpdates, [], (error) ->
+			DocUpdaterClient.sendProjectUpdate @project_id, @user_id, @docUpdates, [], @version, (error) ->
 				throw error if error?
 				setTimeout done, 200
 
@@ -148,6 +153,7 @@ describe "Applying updates to a project's structure", ->
 				update.docLines.should.equal 'a\nb'
 				update.meta.user_id.should.equal @user_id
 				update.meta.ts.should.be.a('string')
+				update.version.should.equal "#{@version}.0"
 
 				done()
 
@@ -155,7 +161,8 @@ describe "Applying updates to a project's structure", ->
 		before (done) ->
 			@project_id = DocUpdaterClient.randomId()
 			@user_id = DocUpdaterClient.randomId()
-
+			@version0 = 12345
+			@version1 = @version0 + 1
 			updates = []
 			for v in [0..599] # Should flush after 500 ops
 				updates.push
@@ -168,9 +175,9 @@ describe "Applying updates to a project's structure", ->
 			# Send updates in chunks to causes multiple flushes
 			projectId = @project_id
 			userId = @project_id
-			DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(0, 250), [], (error) ->
+			DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(0, 250), [], @version0, (error) ->
 				throw error if error?
-				DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(250), [], (error) ->
+				DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(250), [], @version1, (error) ->
 					throw error if error?
 					setTimeout done, 2000
 
@@ -184,6 +191,8 @@ describe "Applying updates to a project's structure", ->
 		before (done) ->
 			@project_id = DocUpdaterClient.randomId()
 			@user_id = DocUpdaterClient.randomId()
+			@version0 = 12345
+			@version1 = @version0 + 1
 
 			updates = []
 			for v in [0..42] # Should flush after 500 ops
@@ -197,9 +206,9 @@ describe "Applying updates to a project's structure", ->
 			# Send updates in chunks
 			projectId = @project_id
 			userId = @project_id
-			DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(0, 10), [], (error) ->
+			DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(0, 10), [], @version0, (error) ->
 				throw error if error?
-				DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(10), [], (error) ->
+				DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(10), [], @version1, (error) ->
 					throw error if error?
 					setTimeout done, 2000
 

+ 2 - 2
services/document-updater/test/acceptance/coffee/helpers/DocUpdaterClient.coffee

@@ -87,9 +87,9 @@ module.exports = DocUpdaterClient =
 				body = JSON.parse(body)
 			callback error, res, body
 
-	sendProjectUpdate: (project_id, userId, docUpdates, fileUpdates, callback = (error) ->) ->
+	sendProjectUpdate: (project_id, userId, docUpdates, fileUpdates, version, callback = (error) ->) ->
 		request.post {
 			url: "http://localhost:3003/project/#{project_id}"
-			json: { userId, docUpdates, fileUpdates }
+			json: { userId, docUpdates, fileUpdates, version }
 		}, (error, res, body) ->
 			callback error, res, body