import mongoose from 'mongoose'; import { getMongoUri, mongoOptions } from '~/server/util/mongoose-utils'; // check env if (process.env.NODE_ENV !== 'test') { throw new Error('\'process.env.NODE_ENV\' must be \'test\''); } module.exports = async() => { await mongoose.connect(getMongoUri(), mongoOptions); // drop database await mongoose.connection.dropDatabase(); // init DB const pageCollection = mongoose.connection.collection('pages'); const userCollection = mongoose.connection.collection('users'); const userGroupCollection = mongoose.connection.collection('usergroups'); const userGroupRelationsCollection = mongoose.connection.collection('usergrouprelations'); // create global user & rootPage const globalUser = (await userCollection.insertMany([{ name: 'globalUser', username: 'globalUser', email: 'globalUser@example.com' }]))[0]; const gGroupUserId1 = new mongoose.Types.ObjectId(); const gGroupUserId2 = new mongoose.Types.ObjectId(); const gGroupUserId3 = new mongoose.Types.ObjectId(); await userCollection.insertMany([ { name: 'v5DummyUser1', username: 'v5DummyUser1', email: 'v5DummyUser1@example.com' }, { name: 'v5DummyUser2', username: 'v5DummyUser2', email: 'v5DummyUser2@example.com' }, { _id: gGroupUserId1, name: 'gGroupUser1', username: 'gGroupUser1', email: 'gGroupUser1@example.com', }, { _id: gGroupUserId2, name: 'gGroupUser2', username: 'gGroupUser2', email: 'gGroupUser2@example.com', }, { _id: gGroupUserId3, name: 'gGroupUser3', username: 'gGroupUser3', email: 'gGroupUser3@example.com', }, ]); const gGroupIdIsolate = new mongoose.Types.ObjectId(); const gGroupIdA = new mongoose.Types.ObjectId(); const gGroupIdB = new mongoose.Types.ObjectId(); const gGroupIdC = new mongoose.Types.ObjectId(); await userGroupCollection.insertMany([ { _id: gGroupIdIsolate, name: 'globalGroupIsolate', }, { _id: gGroupIdA, name: 'globalGroupA', }, { _id: gGroupIdB, name: 'globalGroupB', parent: gGroupIdA, }, { _id: gGroupIdC, name: 'globalGroupC', parent: gGroupIdB, }, ]); await userGroupRelationsCollection.insertMany([ { relatedGroup: gGroupIdIsolate, relatedUser: gGroupUserId1, createdAt: new Date(), }, { relatedGroup: gGroupIdIsolate, relatedUser: gGroupUserId2, createdAt: new Date(), }, { relatedGroup: gGroupIdA, relatedUser: gGroupUserId1, createdAt: new Date(), }, { relatedGroup: gGroupIdA, relatedUser: gGroupUserId2, createdAt: new Date(), }, { relatedGroup: gGroupIdA, relatedUser: gGroupUserId3, createdAt: new Date(), }, { relatedGroup: gGroupIdB, relatedUser: gGroupUserId2, createdAt: new Date(), }, { relatedGroup: gGroupIdB, relatedUser: gGroupUserId3, createdAt: new Date(), }, { relatedGroup: gGroupIdC, relatedUser: gGroupUserId3, createdAt: new Date(), }, ]); await pageCollection.insertMany([{ path: '/', grant: 1, creator: globalUser, lastUpdateUser: globalUser, }]); await mongoose.disconnect(); };