mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
add ensureRootDocumentIsValidForProject method
GitOrigin-RevId: 5b9191bce2fe1de85c573ed533521e53f08d146b
This commit is contained in:
parent
ffd9ec5537
commit
77ad61d86a
2 changed files with 49 additions and 47 deletions
|
@ -204,21 +204,31 @@ module.exports = ProjectRootDocManager = {
|
|||
if (callback == null) {
|
||||
callback = function(error) {}
|
||||
}
|
||||
return ProjectGetter.getProject(project_id, { rootDoc_id: 1 }, function(
|
||||
error,
|
||||
project
|
||||
) {
|
||||
return ProjectGetter.getProject(
|
||||
project_id,
|
||||
{ rootDoc_id: 1, rootFolder: 1 },
|
||||
function(error, project) {
|
||||
if (error != null) {
|
||||
return callback(error)
|
||||
}
|
||||
if (project == null) {
|
||||
return callback(new Error('project not found'))
|
||||
}
|
||||
ProjectRootDocManager.ensureRootDocumentIsValidForProject(
|
||||
project,
|
||||
callback
|
||||
)
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
ensureRootDocumentIsValidForProject(project, callback) {
|
||||
const project_id = project._id
|
||||
if (project.rootDoc_id != null) {
|
||||
return ProjectEntityHandler.getAllDocPathsFromProjectById(
|
||||
project_id,
|
||||
function(error, docPaths) {
|
||||
return ProjectEntityHandler.getAllDocPathsFromProject(project, function(
|
||||
error,
|
||||
docPaths
|
||||
) {
|
||||
if (error != null) {
|
||||
return callback(error)
|
||||
}
|
||||
|
@ -233,21 +243,13 @@ module.exports = ProjectRootDocManager = {
|
|||
return callback()
|
||||
} else {
|
||||
return ProjectEntityUpdateHandler.unsetRootDoc(project_id, () =>
|
||||
ProjectRootDocManager.setRootDocAutomatically(
|
||||
project_id,
|
||||
callback
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
} else {
|
||||
return ProjectRootDocManager.setRootDocAutomatically(
|
||||
project_id,
|
||||
callback
|
||||
ProjectRootDocManager.setRootDocAutomatically(project_id, callback)
|
||||
)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return ProjectRootDocManager.setRootDocAutomatically(project_id, callback)
|
||||
}
|
||||
},
|
||||
|
||||
_sortFileList(listToSort, rootDirectory, callback) {
|
||||
|
|
|
@ -575,13 +575,13 @@ describe('ProjectRootDocManager', function() {
|
|||
|
||||
describe('ensureRootDocumentIsValid', function() {
|
||||
beforeEach(function() {
|
||||
this.project = {}
|
||||
this.project = { _id: this.project_id }
|
||||
this.ProjectGetter.getProject = sinon
|
||||
.stub()
|
||||
.callsArgWith(2, null, this.project)
|
||||
this.ProjectEntityUpdateHandler.setRootDoc = sinon.stub().yields()
|
||||
this.ProjectEntityUpdateHandler.unsetRootDoc = sinon.stub().yields()
|
||||
this.ProjectEntityHandler.getAllDocPathsFromProjectById = sinon
|
||||
this.ProjectEntityHandler.getAllDocPathsFromProject = sinon
|
||||
.stub()
|
||||
.callsArgWith(1, null, this.docPaths)
|
||||
return (this.ProjectRootDocManager.setRootDocAutomatically = sinon
|
||||
|
@ -599,9 +599,9 @@ describe('ProjectRootDocManager', function() {
|
|||
)
|
||||
})
|
||||
|
||||
it('should find the project fetching only the rootDoc_id field', function() {
|
||||
it('should find the project fetching only the rootDoc_id and rootFolder fields', function() {
|
||||
return this.ProjectGetter.getProject
|
||||
.calledWith(this.project_id, { rootDoc_id: 1 })
|
||||
.calledWith(this.project_id, { rootDoc_id: 1, rootFolder: 1 })
|
||||
.should.equal(true)
|
||||
})
|
||||
|
||||
|
@ -625,9 +625,9 @@ describe('ProjectRootDocManager', function() {
|
|||
)
|
||||
})
|
||||
|
||||
it('should find the project fetching only the rootDoc_id field', function() {
|
||||
it('should find the project fetching only the rootDoc_id and rootFolder fields', function() {
|
||||
return this.ProjectGetter.getProject
|
||||
.calledWith(this.project_id, { rootDoc_id: 1 })
|
||||
.calledWith(this.project_id, { rootDoc_id: 1, rootFolder: 1 })
|
||||
.should.equal(true)
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue