mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #682 from sharelatex/sk-copy-linked-file-data-on-clone
Copy linkedFileData when cloning a project
This commit is contained in:
commit
d76c6c2c22
2 changed files with 37 additions and 3 deletions
|
@ -55,7 +55,10 @@ module.exports = ProjectEntityUpdateHandler = self =
|
|||
logger.err { project_id, folder_id, originalProject_id, origonalFileRef }, "file trying to copy is null"
|
||||
return callback()
|
||||
# convert any invalid characters in original file to '_'
|
||||
fileRef = new File name : SafePath.clean(origonalFileRef.name)
|
||||
fileProperties = name : SafePath.clean(origonalFileRef.name)
|
||||
if origonalFileRef.linkedFileData?
|
||||
fileProperties.linkedFileData = origonalFileRef.linkedFileData
|
||||
fileRef = new File(fileProperties)
|
||||
FileStoreHandler.copyFile originalProject_id, origonalFileRef._id, project._id, fileRef._id, (err, fileStoreUrl)->
|
||||
if err?
|
||||
logger.err { err, project_id, folder_id, originalProject_id, origonalFileRef }, "error coping file in s3"
|
||||
|
|
|
@ -44,6 +44,8 @@ describe 'ProjectEntityUpdateHandler', ->
|
|||
else
|
||||
@._id = file_id
|
||||
@rev = 0
|
||||
if options.linkedFileData?
|
||||
@linkedFileData = options.linkedFileData
|
||||
|
||||
@docName = "doc-name"
|
||||
@docLines = ['1234','abc']
|
||||
|
@ -121,6 +123,35 @@ describe 'ProjectEntityUpdateHandler', ->
|
|||
.calledWithMatch(project_id, projectHistoryId, userId, changesMatcher)
|
||||
.should.equal true
|
||||
|
||||
describe 'copyFileFromExistingProjectWithProject, with linkedFileData', ->
|
||||
|
||||
beforeEach ->
|
||||
@oldProject_id = "123kljadas"
|
||||
@oldFileRef = {
|
||||
_id:"oldFileRef",
|
||||
name:@fileName,
|
||||
linkedFileData: @linkedFileData
|
||||
}
|
||||
@ProjectEntityMongoUpdateHandler._confirmFolder = sinon.stub().yields(folder_id)
|
||||
@ProjectEntityMongoUpdateHandler._putElement = sinon.stub().yields(null, {path:{fileSystem: @fileSystemPath}})
|
||||
|
||||
@ProjectEntityUpdateHandler.copyFileFromExistingProjectWithProject @project, folder_id, @oldProject_id, @oldFileRef, userId, @callback
|
||||
|
||||
it 'should copy the file in FileStoreHandler', ->
|
||||
@FileStoreHandler.copyFile
|
||||
.calledWith(@oldProject_id, @oldFileRef._id, project_id, file_id)
|
||||
.should.equal true
|
||||
|
||||
it 'should put file into folder by calling put element, with the linkedFileData', ->
|
||||
@ProjectEntityMongoUpdateHandler._putElement
|
||||
.calledWithMatch(
|
||||
@project,
|
||||
folder_id,
|
||||
{ _id: file_id, name: @fileName, linkedFileData: @linkedFileData},
|
||||
"file"
|
||||
)
|
||||
.should.equal true
|
||||
|
||||
describe 'updateDocLines', ->
|
||||
beforeEach ->
|
||||
@path = "/somewhere/something.tex"
|
||||
|
@ -285,7 +316,7 @@ describe 'ProjectEntityUpdateHandler', ->
|
|||
beforeEach ->
|
||||
@path = "/path/to/file"
|
||||
|
||||
@newFile = {_id: file_id, rev: 0, name: @fileName}
|
||||
@newFile = {_id: file_id, rev: 0, name: @fileName, linkedFileData: @linkedFileData}
|
||||
@TpdsUpdateSender.addFile = sinon.stub().yields()
|
||||
@ProjectEntityMongoUpdateHandler.addFile = sinon.stub().yields(null, {path: fileSystem: @path}, @project)
|
||||
@ProjectEntityUpdateHandler.addFile project_id, folder_id, @fileName, @fileSystemPath, @linkedFileData, userId, @callback
|
||||
|
@ -330,7 +361,7 @@ describe 'ProjectEntityUpdateHandler', ->
|
|||
@newFileUrl = "new-file-url"
|
||||
@FileStoreHandler.uploadFileFromDisk = sinon.stub().yields(null, @newFileUrl)
|
||||
|
||||
@newFile = _id: new_file_id, name: "dummy-upload-filename", rev: 0
|
||||
@newFile = _id: new_file_id, name: "dummy-upload-filename", rev: 0, linkedFileData: @linkedFileData
|
||||
@oldFile = _id: file_id
|
||||
@path = "/path/to/file"
|
||||
@ProjectEntityMongoUpdateHandler._insertDeletedFileReference = sinon.stub().yields()
|
||||
|
|
Loading…
Reference in a new issue