global-setup.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. mongoose.connect(getMongoUri(), mongoOptions);
  17. // drop database
  18. await mongoose.connection.dropDatabase();
  19. // init DB
  20. const pageCollection = mongoose.connection.collection('pages');
  21. const userCollection = mongoose.connection.collection('users');
  22. // create global user & rootPage
  23. const globalUser = (await userCollection.insertMany([{ name: 'globalUser', username: 'globalUser', email: 'globalUser@example.com' }]))[0];
  24. await pageCollection.insertMany([{
  25. path: '/',
  26. grant: 1,
  27. creator: globalUser,
  28. lastUpdateUser: globalUser,
  29. }]);
  30. await mongoose.disconnect();
  31. };