From c7824ced7bf5a2623819e91ccfa5507e637a03fd Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Mon, 13 Jan 2020 13:14:12 +0000 Subject: [PATCH] Merge pull request #2504 from overleaf/bg-initialise-history-on-open create v2 history for old projects when opened GitOrigin-RevId: 78229b517cb425bc439efca1b9259b472099db6d --- .../app/src/Features/Project/ProjectController.js | 4 ++++ .../unit/src/Project/ProjectControllerTests.js | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/services/web/app/src/Features/Project/ProjectController.js b/services/web/app/src/Features/Project/ProjectController.js index 6afa5ca0ee..e4baca6ec0 100644 --- a/services/web/app/src/Features/Project/ProjectController.js +++ b/services/web/app/src/Features/Project/ProjectController.js @@ -6,6 +6,7 @@ const logger = require('logger-sharelatex') const ProjectDeleter = require('./ProjectDeleter') const ProjectDuplicator = require('./ProjectDuplicator') const ProjectCreationHandler = require('./ProjectCreationHandler') +const ProjectHistoryHandler = require('./ProjectHistoryHandler') const EditorController = require('../Editor/EditorController') const ProjectHelper = require('./ProjectHelper') const metrics = require('metrics-sharelatex') @@ -699,6 +700,9 @@ const ProjectController = { activate(cb) { InactiveProjectManager.reactivateProjectIfRequired(projectId, cb) }, + ensureHistoryExists(cb) { + ProjectHistoryHandler.ensureHistoryExistsForProject(projectId, cb) + }, markAsOpened(cb) { // don't need to wait for this to complete ProjectUpdateHandler.markAsOpened(projectId, () => {}) diff --git a/services/web/test/unit/src/Project/ProjectControllerTests.js b/services/web/test/unit/src/Project/ProjectControllerTests.js index ff4a760e65..c986b9029b 100644 --- a/services/web/test/unit/src/Project/ProjectControllerTests.js +++ b/services/web/test/unit/src/Project/ProjectControllerTests.js @@ -56,6 +56,9 @@ describe('ProjectController', function() { .stub() .callsArgWith(2, null, { _id: this.project_id }) } + this.ProjectHistoryHandler = { + ensureHistoryExistsForProject: sinon.stub().callsArg(1) + } this.SubscriptionLocator = { getUsersSubscription: sinon.stub() } this.LimitationsManager = { hasPaidSubscription: sinon.stub() } this.TagsHandler = { getAllTags: sinon.stub() } @@ -157,6 +160,7 @@ describe('ProjectController', function() { './ProjectDeleter': this.ProjectDeleter, './ProjectDuplicator': this.ProjectDuplicator, './ProjectCreationHandler': this.ProjectCreationHandler, + './ProjectHistoryHandler': this.ProjectHistoryHandler, '../Editor/EditorController': this.EditorController, '../User/UserController': this.UserController, './ProjectHelper': this.ProjectHelper, @@ -1133,6 +1137,16 @@ describe('ProjectController', function() { this.ProjectController.loadEditor(this.req, this.res) }) + it('should ensureHistoryExistsForProject', function(done) { + this.res.render = (pageName, opts) => { + this.ProjectHistoryHandler.ensureHistoryExistsForProject + .calledWith(this.project_id) + .should.equal(true) + done() + } + this.ProjectController.loadEditor(this.req, this.res) + }) + it('should mark project as opened', function(done) { this.res.render = (pageName, opts) => { this.ProjectUpdateHandler.markAsOpened