MongoHelper.js 915 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const { execFile } = require('child_process')
  2. const { waitForDb, db } = require('../../../../app/src/infrastructure/mongodb')
  3. const Settings = require('@overleaf/settings')
  4. const DEFAULT_ENV = 'saas'
  5. module.exports = {
  6. initialize() {
  7. before(waitForDb)
  8. before(function (done) {
  9. const args = [
  10. 'run',
  11. 'migrations',
  12. '--',
  13. 'migrate',
  14. '-t',
  15. Settings.env || DEFAULT_ENV,
  16. ]
  17. execFile('npm', args, (error, stdout, stderr) => {
  18. if (error) {
  19. throw error
  20. }
  21. done()
  22. })
  23. })
  24. afterEach(async function () {
  25. return Promise.all(
  26. Object.values(db).map(async collection => {
  27. if (collection === db.migrations) {
  28. // Do not clear the collection for tracking migrations.
  29. return
  30. }
  31. return collection.deleteMany({})
  32. })
  33. )
  34. })
  35. },
  36. }