Просмотр исходного кода

Merge pull request #2504 from overleaf/bg-initialise-history-on-open

create v2 history for old projects when opened

GitOrigin-RevId: 78229b517cb425bc439efca1b9259b472099db6d
Brian Gough 6 лет назад
Родитель
Сommit
c7824ced7b

+ 4 - 0
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, () => {})

+ 14 - 0
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