Merge pull request #10442 from overleaf/jpa-convert-archived-trashed

[web] add migration for convert_archived_state script

GitOrigin-RevId: aeea3601a0c5f96e978c3f2a85458687d6d6678e
This commit is contained in:
Jakob Ackermann
2022-11-15 09:07:09 +00:00
committed by Copybot
parent 5eff354971
commit d4551dc7ce
3 changed files with 153 additions and 44 deletions
@@ -10,6 +10,10 @@ describe('ConvertArchivedState', function () {
let projectTwo, projectTwoId
let projectThree, projectThreeId
let projectFour, projectFourId
let projectIdTrashed
let projectIdNotTrashed
let projectIdArchivedAndTrashed
let projectIdNotArchivedNotTrashed
beforeEach(async function () {
userOne = new User()
@@ -64,15 +68,60 @@ describe('ConvertArchivedState', function () {
projectFour.archived = false
await userOne.saveProject(projectFour)
projectIdTrashed = await userOne.createProject('trashed', {
template: 'blank',
})
{
const p = await userOne.getProject(projectIdTrashed)
p.trashed = true
p.collaberator_refs.push(userTwo._id)
await userOne.saveProject(p)
}
projectIdNotTrashed = await userOne.createProject('not-trashed', {
template: 'blank',
})
{
const p = await userOne.getProject(projectIdNotTrashed)
p.trashed = false
p.collaberator_refs.push(userTwo._id)
await userOne.saveProject(p)
}
projectIdArchivedAndTrashed = await userOne.createProject('not-trashed', {
template: 'blank',
})
{
const p = await userOne.getProject(projectIdArchivedAndTrashed)
p.archived = true
p.trashed = true
p.collaberator_refs.push(userTwo._id)
await userOne.saveProject(p)
}
projectIdNotArchivedNotTrashed = await userOne.createProject(
'not-archived,not-trashed',
{
template: 'blank',
}
)
{
const p = await userOne.getProject(projectIdNotArchivedNotTrashed)
p.archived = false
p.trashed = false
p.collaberator_refs.push(userTwo._id)
await userOne.saveProject(p)
}
})
beforeEach(function (done) {
exec(
'CONNECT_DELAY=1 node scripts/convert_archived_state.js FIRST,SECOND',
(error, stdout, stderr) => {
console.log(stdout)
console.error(stderr)
if (error) {
console.log(stdout)
console.error(stderr)
return done(error)
}
done()
@@ -95,6 +144,7 @@ describe('ConvertArchivedState', function () {
userThree._id,
userFour._id,
])
expect(projectTwo.trashed).to.deep.equal([])
})
it('should not change the value of a project already archived with an array', async function () {
@@ -104,11 +154,46 @@ describe('ConvertArchivedState', function () {
userTwo._id,
userFour._id,
])
expect(projectThree.trashed).to.deep.equal([])
})
it('should change a none-archived project with a boolean value to an array', async function () {
projectFour = await userOne.getProject(projectFourId)
expect(convertObjectIdsToStrings(projectFour.archived)).to.deep.equal([])
expect(projectFour.trashed).to.deep.equal([])
})
it('should change a archived and trashed project with a boolean value to an array', async function () {
const p = await userOne.getProject(projectIdArchivedAndTrashed)
expect(convertObjectIdsToStrings(p.archived)).to.deep.equal([
userOne._id,
userTwo._id,
])
expect(convertObjectIdsToStrings(p.trashed)).to.deep.equal([
userOne._id,
userTwo._id,
])
})
it('should change a trashed project with a boolean value to an array', async function () {
const p = await userOne.getProject(projectIdTrashed)
expect(p.archived).to.not.exist
expect(convertObjectIdsToStrings(p.trashed)).to.deep.equal([
userOne._id,
userTwo._id,
])
})
it('should change a not-trashed project with a boolean value to an array', async function () {
const p = await userOne.getProject(projectIdNotTrashed)
expect(p.archived).to.not.exist
expect(convertObjectIdsToStrings(p.trashed)).to.deep.equal([])
})
it('should change a not-archived/not-trashed project with a boolean value to an array', async function () {
const p = await userOne.getProject(projectIdNotArchivedNotTrashed)
expect(p.archived).to.deep.equal([])
expect(p.trashed).to.deep.equal([])
})
})