1
0
Fork 0
mirror of https://github.com/overleaf/overleaf.git synced 2025-04-22 17:46:57 +00:00

update acceptance tests

This commit is contained in:
Brian Gough 2018-03-06 10:36:38 +00:00
parent b3887fd984
commit 75a5428cbf
2 changed files with 21 additions and 12 deletions
services/document-updater/test/acceptance/coffee

View file

@ -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

View file

@ -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