diff --git a/services/web/public/coffee/ide/history/controllers/HistoryV2DiffController.coffee b/services/web/public/coffee/ide/history/controllers/HistoryV2DiffController.coffee index 89cf3975ec..c2ced4cf59 100644 --- a/services/web/public/coffee/ide/history/controllers/HistoryV2DiffController.coffee +++ b/services/web/public/coffee/ide/history/controllers/HistoryV2DiffController.coffee @@ -29,10 +29,11 @@ define [ do tryOpen = () -> if iterations > 5 return + iterations += 1 entity = ide.fileTreeManager.findEntityById(id) if entity? and type == 'doc' ide.editorManager.openDoc(entity) - if entity? and type == 'file' + else if entity? and type == 'file' ide.binaryFilesManager.openFile(entity) else setTimeout(tryOpen, 500) diff --git a/services/web/test/unit/coffee/History/RestoreManagerTests.coffee b/services/web/test/unit/coffee/History/RestoreManagerTests.coffee index b15cdab946..37fe6752e7 100644 --- a/services/web/test/unit/coffee/History/RestoreManagerTests.coffee +++ b/services/web/test/unit/coffee/History/RestoreManagerTests.coffee @@ -30,7 +30,7 @@ describe 'RestoreManager', -> describe 'restoreFileFromV2', -> beforeEach -> @RestoreManager._writeFileVersionToDisk = sinon.stub().yields(null, @fsPath = "/tmp/path/on/disk") - @RestoreManager._findFolderOrRootFolderId = sinon.stub().yields(null, @folder_id = 'mock-folder-id') + @RestoreManager._findOrCreateFolder = sinon.stub().yields(null, @folder_id = 'mock-folder-id') @FileSystemImportManager.addEntity = sinon.stub().yields(null, @entity = 'mock-entity') describe "with a file not in a folder", -> @@ -44,7 +44,7 @@ describe 'RestoreManager', -> .should.equal true it 'should find the root folder', -> - @RestoreManager._findFolderOrRootFolderId + @RestoreManager._findOrCreateFolder .calledWith(@project_id, "") .should.equal true @@ -62,7 +62,7 @@ describe 'RestoreManager', -> @RestoreManager.restoreFileFromV2 @user_id, @project_id, @version, @pathname, @callback it 'should find the folder', -> - @RestoreManager._findFolderOrRootFolderId + @RestoreManager._findOrCreateFolder .calledWith(@project_id, "foo") .should.equal true @@ -71,27 +71,19 @@ describe 'RestoreManager', -> .calledWith(@user_id, @project_id, @folder_id, 'bar.tex', @fsPath, false) .should.equal true - describe '_findFolderOrRootFolderId', -> - describe 'with a folder that exists', -> - beforeEach -> - @ProjectLocator.findElementByPath = sinon.stub().yields(null, {_id: @folder_id = 'mock-folder-id'}, 'folder') - @RestoreManager._findFolderOrRootFolderId @project_id, 'folder_name', @callback + describe '_findOrCreateFolder', -> + beforeEach -> + @EditorController.mkdirp = sinon.stub().yields(null, [], {_id: @folder_id = 'mock-folder-id'}) + @RestoreManager._findOrCreateFolder @project_id, 'folder/name', @callback - it 'should look up the folder', -> - @ProjectLocator.findElementByPath - .calledWith({project_id: @project_id, path: 'folder_name'}) - .should.equal true + it 'should look up or create the folder', -> + @EditorController.mkdirp + .calledWith(@project_id, 'folder/name') + .should.equal true - it 'should return the folder_id', -> - @callback.calledWith(null, @folder_id).should.equal true + it 'should return the folder_id', -> + @callback.calledWith(null, @folder_id).should.equal true - describe "with a folder that doesn't exist", -> - beforeEach -> - @ProjectLocator.findElementByPath = sinon.stub().yields(new Errors.NotFoundError()) - @RestoreManager._findFolderOrRootFolderId @project_id, 'folder_name', @callback - - it 'should return null', -> - @callback.calledWith(null, null).should.equal true describe '_addEntityWithUniqueName', -> beforeEach -> diff --git a/services/web/test/unit_frontend/coffee/ide/history/HistoryV2ManagerTests.coffee b/services/web/test/unit_frontend/coffee/ide/history/HistoryV2ManagerTests.coffee index 9d0e103e0c..7f98de7fc9 100644 --- a/services/web/test/unit_frontend/coffee/ide/history/HistoryV2ManagerTests.coffee +++ b/services/web/test/unit_frontend/coffee/ide/history/HistoryV2ManagerTests.coffee @@ -130,7 +130,7 @@ define ['ide/history/HistoryV2Manager'], (HistoryV2Manager) -> project_ops: [{ remove: pathname: "main.tex" - atV: 2 + atV: 2 }] fromV: 1, toV: 2 }]) @@ -144,7 +144,7 @@ define ['ide/history/HistoryV2Manager'], (HistoryV2Manager) -> project_ops: [{ remove: pathname: "main.tex" - atV: 1 + atV: 1 }] fromV: 0, toV: 1 }])