mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-15 05:11:57 +00:00
Merge pull request #4252 from overleaf/em-active-projects-expire
Prevent active projects from expiring GitOrigin-RevId: b815ef2022470cc1ec4dc47fb1b13563b230814f
This commit is contained in:
parent
9b9d6f679e
commit
8462a3e1f5
2 changed files with 22 additions and 0 deletions
|
@ -342,6 +342,16 @@ async function undeleteProject(projectId, options = {}) {
|
|||
|
||||
async function expireDeletedProject(projectId) {
|
||||
try {
|
||||
const activeProject = await Project.findById(projectId).exec()
|
||||
if (activeProject) {
|
||||
// That project is active. The deleted project record might be there
|
||||
// because of an incomplete delete or undelete operation. Clean it up and
|
||||
// return.
|
||||
await DeletedProject.deleteOne({
|
||||
'deleterData.deletedProjectId': projectId,
|
||||
})
|
||||
return
|
||||
}
|
||||
const deletedProject = await DeletedProject.findOne({
|
||||
'deleterData.deletedProjectId': projectId,
|
||||
}).exec()
|
||||
|
|
|
@ -369,6 +369,12 @@ describe('ProjectDeleter', function () {
|
|||
|
||||
describe('expireDeletedProjectsAfterDuration', function () {
|
||||
beforeEach(async function () {
|
||||
for (const deletedProject of this.deletedProjects) {
|
||||
this.ProjectMock.expects('findById')
|
||||
.withArgs(deletedProject.deleterData.deletedProjectId)
|
||||
.chain('exec')
|
||||
.resolves(null)
|
||||
}
|
||||
this.DeletedProjectMock.expects('find')
|
||||
.withArgs({
|
||||
'deleterData.deletedAt': {
|
||||
|
@ -414,6 +420,12 @@ describe('ProjectDeleter', function () {
|
|||
|
||||
describe('expireDeletedProject', function () {
|
||||
beforeEach(async function () {
|
||||
for (const deletedProject of this.deletedProjects) {
|
||||
this.ProjectMock.expects('findById')
|
||||
.withArgs(deletedProject.deleterData.deletedProjectId)
|
||||
.chain('exec')
|
||||
.resolves(null)
|
||||
}
|
||||
this.DeletedProjectMock.expects('updateOne')
|
||||
.withArgs(
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue