v5-global-setup.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /** **********************************************************
  2. * Caution
  3. *
  4. * Module aliases by compilerOptions.paths in tsconfig.json
  5. * are NOT available in setup scripts
  6. *********************************************************** */
  7. import 'tsconfig-paths/register';
  8. import mongoose from 'mongoose';
  9. import { initMongooseGlobalSettings, getMongoUri, mongoOptions } from '@growi/core';
  10. import { getInstance } from './setup-crowi';
  11. // check env
  12. if (process.env.NODE_ENV !== 'test') {
  13. throw new Error('\'process.env.NODE_ENV\' must be \'test\'');
  14. }
  15. module.exports = async() => {
  16. initMongooseGlobalSettings();
  17. process.env.MONGO_URI = 'mongodb://mongo/growi_v5_test';
  18. mongoose.connect(getMongoUri(), mongoOptions);
  19. // drop database
  20. await mongoose.connection.dropDatabase();
  21. // init DB
  22. const pageCollection = mongoose.connection.collection('pages');
  23. const userCollection = mongoose.connection.collection('users');
  24. // create global user & rootPage
  25. const globalUser = (await userCollection.insertMany([{ name: 'globalUser', username: 'globalUser', email: 'globalUser@example.com' }]))[0];
  26. await pageCollection.insertMany([{
  27. path: '/',
  28. grant: 1,
  29. creator: globalUser,
  30. lastUpdateUser: globalUser,
  31. }]);
  32. await mongoose.disconnect();
  33. };