global-setup.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. // check env
  11. if (process.env.NODE_ENV !== 'test') {
  12. throw new Error('\'process.env.NODE_ENV\' must be \'test\'');
  13. }
  14. module.exports = async() => {
  15. initMongooseGlobalSettings();
  16. process.env.MONGO_URI = 'mongodb://mongo/growi_test';
  17. mongoose.connect(getMongoUri(), mongoOptions);
  18. // drop database
  19. await mongoose.connection.dropDatabase();
  20. // init DB
  21. const pageCollection = mongoose.connection.collection('pages');
  22. const userCollection = mongoose.connection.collection('users');
  23. // create global user & rootPage
  24. const globalUser = (await userCollection.insertMany([{ name: 'globalUser', username: 'globalUser', email: 'globalUser@example.com' }]))[0];
  25. await pageCollection.insertMany([{
  26. path: '/',
  27. grant: 1,
  28. creator: globalUser,
  29. lastUpdateUser: globalUser,
  30. }]);
  31. await mongoose.disconnect();
  32. };