From 772ee4083a4976a108e2e59aad3561b1e72c6468 Mon Sep 17 00:00:00 2001 From: Michael Walker Date: Wed, 31 Jan 2018 11:17:56 +0000 Subject: [PATCH] Turn a unit test into an acceptance test --- ...lyingUpdatesToProjectStructureTests.coffee | 34 ++++++------------- 1 file changed, 11 insertions(+), 23 deletions(-) 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