| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- const { expect } = require('chai')
- const { exec } = require('child_process')
- const { ObjectId } = require('../../../app/src/infrastructure/mongojs')
- const User = require('./helpers/User').promises
- describe('ConvertArchivedState', function() {
- let userOne, userTwo, userThree, userFour
- let projectOne, projectOneId
- let projectTwo, projectTwoId
- let projectThree, projectThreeId
- let projectFour, projectFourId
- beforeEach(async function() {
- userOne = new User()
- userTwo = new User()
- userThree = new User()
- userFour = new User()
- await userOne.login()
- await userTwo.login()
- await userThree.login()
- await userFour.login()
- projectOneId = await userOne.createProject('old-archived-1', {
- template: 'blank'
- })
- projectOne = await userOne.getProject(projectOneId)
- projectOne.archived = true
- projectOne.collaberator_refs.push(userTwo._id)
- projectOne.tokenAccessReadOnly_refs.push(userThree._id)
- await userOne.saveProject(projectOne)
- projectTwoId = await userOne.createProject('old-archived-2', {
- template: 'blank'
- })
- projectTwo = await userOne.getProject(projectTwoId)
- projectTwo.archived = true
- projectTwo.tokenAccessReadAndWrite_refs.push(userThree._id)
- projectTwo.tokenAccessReadOnly_refs.push(userFour._id)
- await userOne.saveProject(projectTwo)
- projectThreeId = await userOne.createProject('already-new-archived', {
- template: 'blank'
- })
- projectThree = await userOne.getProject(projectThreeId)
- projectThree.archived = [
- ObjectId(userOne._id),
- ObjectId(userTwo._id),
- ObjectId(userFour._id)
- ]
- projectThree.collaberator_refs.push(userTwo._id)
- projectThree.tokenAccessReadOnly_refs.push(userFour._id)
- await userOne.saveProject(projectThree)
- projectFourId = await userOne.createProject('not-archived', {
- template: 'blank'
- })
- projectFour = await userOne.getProject(projectFourId)
- projectFour.archived = false
- await userOne.saveProject(projectFour)
- })
- beforeEach(function(done) {
- exec(
- 'CONNECT_DELAY=1 node scripts/convert_archived_state.js',
- (error, stdout, stderr) => {
- console.log(stdout)
- console.error(stderr)
- if (error) {
- return done(error)
- }
- done()
- }
- )
- })
- describe('main method', function() {
- it('should change a project archived boolean to an array', async function() {
- projectOne = await userOne.getProject(projectOneId)
- projectTwo = await userOne.getProject(projectTwoId)
- expect(convertObjectIdsToStrings(projectOne.archived)).to.deep.equal([
- userOne._id,
- userTwo._id,
- userThree._id
- ])
- expect(convertObjectIdsToStrings(projectTwo.archived)).to.deep.equal([
- userOne._id,
- userThree._id,
- userFour._id
- ])
- })
- it('should not change the value of a project already archived with an array', async function() {
- projectThree = await userOne.getProject(projectThreeId)
- expect(convertObjectIdsToStrings(projectThree.archived)).to.deep.equal([
- userOne._id,
- userTwo._id,
- userFour._id
- ])
- })
- 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([])
- })
- })
- function convertObjectIdsToStrings(ids) {
- if (typeof ids === 'object') {
- return ids.map(id => {
- return id.toString()
- })
- }
- }
- })
|