2021-07-21 06:34:09 -04:00
|
|
|
const { execFile } = require('child_process')
|
2021-02-25 07:22:24 -05:00
|
|
|
const { waitForDb, db } = require('../../../../app/src/infrastructure/mongodb')
|
2021-07-21 06:34:09 -04:00
|
|
|
const Settings = require('@overleaf/settings')
|
|
|
|
|
|
|
|
const DEFAULT_ENV = 'saas'
|
2021-02-25 07:22:24 -05:00
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
initialize() {
|
|
|
|
before(waitForDb)
|
|
|
|
|
2021-04-14 09:17:21 -04:00
|
|
|
before(function (done) {
|
2021-07-21 06:34:09 -04:00
|
|
|
const args = [
|
|
|
|
'run',
|
|
|
|
'migrations',
|
|
|
|
'--',
|
|
|
|
'migrate',
|
|
|
|
'-t',
|
|
|
|
Settings.env || DEFAULT_ENV,
|
|
|
|
]
|
|
|
|
execFile('npm', args, (error, stdout, stderr) => {
|
2021-02-25 07:22:24 -05:00
|
|
|
if (error) {
|
|
|
|
throw error
|
|
|
|
}
|
|
|
|
done()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2021-04-14 09:17:21 -04:00
|
|
|
afterEach(async function () {
|
2021-02-25 07:22:24 -05:00
|
|
|
return Promise.all(
|
2021-05-17 05:37:23 -04:00
|
|
|
Object.values(db).map(async collection => {
|
|
|
|
if (collection === db.migrations) {
|
|
|
|
// Do not clear the collection for tracking migrations.
|
|
|
|
return
|
|
|
|
}
|
|
|
|
return collection.deleteMany({})
|
|
|
|
})
|
2021-02-25 07:22:24 -05:00
|
|
|
)
|
|
|
|
})
|
2021-04-27 03:52:58 -04:00
|
|
|
},
|
2021-02-25 07:22:24 -05:00
|
|
|
}
|