diff --git a/services/web/app/src/Features/Project/ProjectEntityRestoreHandler.js b/services/web/app/src/Features/Project/ProjectEntityRestoreHandler.js index 8b06cc9f25..2ab8a2342c 100644 --- a/services/web/app/src/Features/Project/ProjectEntityRestoreHandler.js +++ b/services/web/app/src/Features/Project/ProjectEntityRestoreHandler.js @@ -1,7 +1,7 @@ const { callbackify } = require('util') const Path = require('path') const ProjectEntityHandler = require('./ProjectEntityHandler') -const ProjectEntityUpdateHandler = require('./ProjectEntityUpdateHandler') +const EditorController = require('../Editor/EditorController') // generate a new name based on the original, with an optional label. // e.g. origname-20210101-122345.tex (default) @@ -24,12 +24,14 @@ async function restoreDeletedDoc(projectId, docId, docName, userId) { { include_deleted: true } ) const deletedDocName = generateRestoredName(docName) - return await ProjectEntityUpdateHandler.promises.addDocWithRanges( + // Create the doc and emit a websocket message. + return await EditorController.promises.addDocWithRanges( projectId, null, `${deletedDocName}`, deletedDoc.lines, deletedDoc.ranges, + null, userId ) } diff --git a/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js b/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js index 08d1580f4d..50a41d1a96 100644 --- a/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js +++ b/services/web/app/src/Features/Project/ProjectEntityUpdateHandler.js @@ -386,7 +386,7 @@ const ProjectEntityUpdateHandler = { if (error != null) { return callback(error) } - callback(null, doc, folderId) + callback(null, doc, folderId || project.rootFolder[0]._id) } ) } diff --git a/services/web/test/unit/src/Project/ProjectEntityRestoreHandlerTests.js b/services/web/test/unit/src/Project/ProjectEntityRestoreHandlerTests.js index c8a125d11f..7a8a863cad 100644 --- a/services/web/test/unit/src/Project/ProjectEntityRestoreHandlerTests.js +++ b/services/web/test/unit/src/Project/ProjectEntityRestoreHandlerTests.js @@ -33,7 +33,7 @@ describe('ProjectEntityRestoreHandler', function () { }, } - this.ProjectEntityUpdateHandler = { + this.EditorController = { promises: { addDocWithRanges: sinon.stub(), }, @@ -42,7 +42,7 @@ describe('ProjectEntityRestoreHandler', function () { this.ProjectEntityRestoreHandler = SandboxedModule.require(MODULE_PATH, { requires: { './ProjectEntityHandler': this.ProjectEntityHandler, - './ProjectEntityUpdateHandler': this.ProjectEntityUpdateHandler, + '../Editor/EditorController': this.EditorController, }, }) }) @@ -68,9 +68,9 @@ describe('ProjectEntityRestoreHandler', function () { ranges: this.ranges, }) - this.ProjectEntityUpdateHandler.addDocWithRanges = sinon + this.EditorController.promises.addDocWithRanges = sinon .stub() - .yields(null, this.newDoc) + .resolves(this.newDoc) await this.ProjectEntityRestoreHandler.promises.restoreDeletedDoc( this.project._id, @@ -82,13 +82,14 @@ describe('ProjectEntityRestoreHandler', function () { const docNameMatcher = new RegExp(docName + '-\\d{4}-\\d{2}-\\d{2}-\\d+') expect( - this.ProjectEntityUpdateHandler.promises.addDocWithRanges + this.EditorController.promises.addDocWithRanges ).to.have.been.calledWith( this.project._id, null, sinon.match(docNameMatcher), this.docLines, this.ranges, + null, this.user._id ) })