diff --git a/services/document-updater/test/acceptance/coffee/ApplyingUpdatesToProjectStructureTests.coffee b/services/document-updater/test/acceptance/coffee/ApplyingUpdatesToProjectStructureTests.coffee index d4521b6b18..d006890bed 100644 --- a/services/document-updater/test/acceptance/coffee/ApplyingUpdatesToProjectStructureTests.coffee +++ b/services/document-updater/test/acceptance/coffee/ApplyingUpdatesToProjectStructureTests.coffee @@ -4,11 +4,8 @@ chai.should() Settings = require('settings-sharelatex') rclient_history = require("redis-sharelatex").createClient(Settings.redis.history) ProjectHistoryKeys = Settings.redis.project_history.key_schema -SandboxedModule = require('sandboxed-module') -HistoryManagerModulePath = require('path').join __dirname, '../../../app/js/HistoryManager.js' -ProjectManagerModulePath = require('path').join __dirname, '../../../app/js/ProjectManager.js' -RedisManagerModulePath = require('path').join __dirname, '../../../app/js/RedisManager.js' +MockProjectHistoryApi = require "./helpers/MockProjectHistoryApi" MockWebApi = require "./helpers/MockWebApi" DocUpdaterClient = require "./helpers/DocUpdaterClient" @@ -153,22 +150,6 @@ describe "Applying updates to a project's structure", -> describe "with enough updates to flush to the history service", -> before (done) -> - @RedisManager = SandboxedModule.require RedisManagerModulePath, requires: - "logger-sharelatex": @logger = { log: sinon.stub(), error: sinon.stub() } - @HistoryManager = SandboxedModule.require HistoryManagerModulePath, requires: - "request": {} - "settings-sharelatex": {} - "logger-sharelatex": @logger - "./HistoryRedisManager": {} - @HistoryManager.flushProjectChangesAsync = sinon.stub() - @ProjectManager = SandboxedModule.require ProjectManagerModulePath, requires: - './HistoryManager': @HistoryManager - 'logger-sharelatex' : @logger - './Metrics': @Metrics = {} - './RedisManager': @RedisManager - @Metrics.Timer = class Timer - done: sinon.stub() - @project_id = DocUpdaterClient.randomId() @user_id = DocUpdaterClient.randomId() @@ -179,12 +160,19 @@ describe "Applying updates to a project's structure", -> pathname: '/file-' + v docLines: 'a\nb' + sinon.spy MockProjectHistoryApi, "flushProject" + # Send updates in chunks to causes multiple flushes - @ProjectManager.updateProjectWithLocks @project_id, @user_id, updates.slice(0, 250), [], (error) => + projectId = @project_id + userId = @project_id + DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(0, 250), [], (error) -> throw error if error? - @ProjectManager.updateProjectWithLocks @project_id, @user_id, updates.slice(250), [], (error) => + DocUpdaterClient.sendProjectUpdate projectId, userId, updates.slice(250), [], (error) -> throw error if error? setTimeout done, 2000 + after -> + MockProjectHistoryApi.flushProject.restore() + it "should flush project history", -> - @HistoryManager.flushProjectChangesAsync.calledWith(@project_id).should.equal true + MockProjectHistoryApi.flushProject.calledWith(@project_id).should.equal true