ryosei-f 6 месяцев назад
Родитель
Сommit
ca8cf829ff

+ 10 - 0
apps/app/src/server/service/growi-info/growi-info.integ.ts

@@ -1,12 +1,15 @@
+import mongoose from 'mongoose';
 import { mock } from 'vitest-mock-extended';
 import { mock } from 'vitest-mock-extended';
 
 
 import pkg from '^/package.json';
 import pkg from '^/package.json';
 
 
 import type UserEvent from '~/server/events/user';
 import type UserEvent from '~/server/events/user';
 import { Config } from '~/server/models/config';
 import { Config } from '~/server/models/config';
+import { getPageSchema } from '~/server/models/obsolete-page';
 import { configManager } from '~/server/service/config-manager';
 import { configManager } from '~/server/service/config-manager';
 
 
 import type Crowi from '../../crowi';
 import type Crowi from '../../crowi';
+import pageModel from '../../models/page';
 
 
 import { growiInfoService } from './growi-info';
 import { growiInfoService } from './growi-info';
 
 
@@ -14,12 +17,18 @@ describe('GrowiInfoService', () => {
   const appVersion = pkg.version;
   const appVersion = pkg.version;
 
 
   let User;
   let User;
+  let Page;
 
 
   beforeAll(async() => {
   beforeAll(async() => {
     process.env.APP_SITE_URL = 'http://growi.test.jp';
     process.env.APP_SITE_URL = 'http://growi.test.jp';
     process.env.DEPLOYMENT_TYPE = 'growi-docker-compose';
     process.env.DEPLOYMENT_TYPE = 'growi-docker-compose';
     process.env.SAML_ENABLED = 'true';
     process.env.SAML_ENABLED = 'true';
 
 
+    // setup page model before loading configs
+    getPageSchema(null);
+    pageModel(null);
+    Page = mongoose.model('Page');
+
     await configManager.loadConfigs();
     await configManager.loadConfigs();
     await configManager.updateConfigs({
     await configManager.updateConfigs({
       'security:passport-saml:isEnabled': true,
       'security:passport-saml:isEnabled': true,
@@ -47,6 +56,7 @@ describe('GrowiInfoService', () => {
     User = userModelFactory(crowiMock);
     User = userModelFactory(crowiMock);
 
 
     await User.deleteMany({}); // clear users
     await User.deleteMany({}); // clear users
+    await Page.deleteMany({}); // clear pages
   });
   });
 
 
   describe('getGrowiInfo', () => {
   describe('getGrowiInfo', () => {

+ 1 - 0
apps/app/src/server/service/growi-info/growi-info.ts

@@ -118,6 +118,7 @@ export class GrowiInfoService {
 
 
   private async getAdditionalInfoByOptions<T extends GrowiInfoOptions>(options: T): Promise<IGrowiAdditionalInfoResult<T>> {
   private async getAdditionalInfoByOptions<T extends GrowiInfoOptions>(options: T): Promise<IGrowiAdditionalInfoResult<T>> {
     const User = mongoose.model<IUser, Model<IUser>>('User');
     const User = mongoose.model<IUser, Model<IUser>>('User');
+
     // Check if any option is enabled to determine if we should return additional info
     // Check if any option is enabled to determine if we should return additional info
     const hasAnyOption = options.includeAttachmentInfo || options.includeInstalledInfo || options.includeUserCountInfo || options.includePageCountInfo;
     const hasAnyOption = options.includeAttachmentInfo || options.includeInstalledInfo || options.includeUserCountInfo || options.includePageCountInfo;