Futa Arai 7 месяцев назад
Родитель
Сommit
ca83f199ab

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

@@ -54,6 +54,7 @@ export interface IPageService {
     page: PageDocument, creatorId: ObjectIdLike | null, operator: any | null, userRelatedGroups: PopulatedGrantedGroup[]
   ): boolean,
   getYjsData(pageId: string, revisionBody?: string): Promise<CurrentPageYjsData>,
+  updateDescendantCountOfPagesWithPaths(paths: string[]): Promise<void>,
   revertRecursivelyMainOperation(page, user, options, pageOpId: ObjectIdLike, activity?): Promise<void>,
   revertDeletedPage(page, user, options, isRecursively: boolean, activityParameters?),
   deleteCompletelyRecursivelyMainOperation(page, user, options, pageOpId: ObjectIdLike, activity?): Promise<void>,

+ 1 - 1
apps/app/test/integration/service/user-groups.test.ts

@@ -60,7 +60,7 @@ describe('UserGroupService', () => {
     Page = mongoose.model<IPage, PageModel>('Page');
 
     rootPage = await Page.findOne({ path: '/' });
-    userGroupService = crowi.userGroupService;
+    userGroupService = crowi.userGroupService!;
 
     await User.insertMany([
       // ug -> User Group

+ 21 - 10
apps/app/test/integration/service/v5.non-public-page.test.ts

@@ -48,10 +48,7 @@ describe('PageService page operations with non-public pages', () => {
   let Revision: IRevisionModel;
   // biome-ignore lint/suspicious/noImplicitAnyLet: ignore
   let User;
-  let generalXssFilterProcessSpy: jest.SpyInstance<
-    string,
-    [string | undefined]
-  >;
+  let generalXssFilterProcessSpy: jest.SpyInstance;
 
   let rootPage: PageDocument;
 
@@ -129,7 +126,11 @@ describe('PageService page operations with non-public pages', () => {
 
     mockedCreateSubOperation.mockRestore();
 
-    await crowi.pageService.createSubOperation(...argsForCreateSubOperation);
+    await crowi.pageService.createSubOperation(
+      ...(argsForCreateSubOperation as Parameters<
+        typeof crowi.pageService.createSubOperation
+      >),
+    );
 
     return createdPage;
   };
@@ -1288,7 +1289,9 @@ describe('PageService page operations with non-public pages', () => {
       // rename descendants
       if (page.grant !== Page.GRANT_RESTRICTED) {
         await crowi.pageService.renameSubOperation(
-          ...argsForRenameSubOperation,
+          ...(argsForRenameSubOperation as Parameters<
+            typeof crowi.pageService.renameSubOperation
+          >),
         );
       }
 
@@ -1489,7 +1492,9 @@ describe('PageService page operations with non-public pages', () => {
       // duplicate descendants
       if (page.grant !== Page.GRANT_RESTRICTED && isRecursively) {
         await crowi.pageService.duplicateRecursivelyMainOperation(
-          ...argsForDuplicateRecursivelyMainOperation,
+          ...(argsForDuplicateRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.duplicateRecursivelyMainOperation
+          >),
         );
       }
 
@@ -1839,7 +1844,9 @@ describe('PageService page operations with non-public pages', () => {
 
       if (isRecursively) {
         await crowi.pageService.deleteRecursivelyMainOperation(
-          ...argsForDeleteRecursivelyMainOperation,
+          ...(argsForDeleteRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.deleteRecursivelyMainOperation
+          >),
         );
       }
 
@@ -2015,7 +2022,9 @@ describe('PageService page operations with non-public pages', () => {
 
       if (isRecursively) {
         await crowi.pageService.deleteCompletelyRecursivelyMainOperation(
-          ...argsForDeleteCompletelyRecursivelyMainOperation,
+          ...(argsForDeleteCompletelyRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.deleteCompletelyRecursivelyMainOperation
+          >),
         );
       }
 
@@ -2154,7 +2163,9 @@ describe('PageService page operations with non-public pages', () => {
       mockedRevertRecursivelyMainOperation.mockRestore();
       if (isRecursively) {
         await crowi.pageService.revertRecursivelyMainOperation(
-          ...argsForRecursivelyMainOperation,
+          ...(argsForRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.revertRecursivelyMainOperation
+          >),
         );
       }
 

+ 24 - 11
apps/app/test/integration/service/v5.public-page.test.ts

@@ -47,10 +47,7 @@ describe('PageService page operations with only public pages', () => {
   let ShareLink: ShareLinkModel;
   let PageRedirect: PageRedirectModel;
   let PageOperation: PageOperationModel;
-  let generalXssFilterProcessSpy: jest.SpyInstance<
-    string,
-    [string | undefined]
-  >;
+  let generalXssFilterProcessSpy: jest.SpyInstance;
 
   let rootPage: PageDocument;
 
@@ -73,7 +70,11 @@ describe('PageService page operations with only public pages', () => {
 
     mockedCreateSubOperation.mockRestore();
 
-    await crowi.pageService.createSubOperation(...argsForCreateSubOperation);
+    await crowi.pageService.createSubOperation(
+      ...(argsForCreateSubOperation as Parameters<
+        typeof crowi.pageService.createSubOperation
+      >),
+    );
 
     return createdPage;
   };
@@ -1297,7 +1298,11 @@ describe('PageService page operations with only public pages', () => {
       mockedRenameSubOperation.mockRestore();
 
       // rename descendants
-      await crowi.pageService.renameSubOperation(...argsForRenameSubOperation);
+      await crowi.pageService.renameSubOperation(
+        ...(argsForRenameSubOperation as Parameters<
+          typeof crowi.pageService.renameSubOperation
+        >),
+      );
 
       return renamedPage;
     };
@@ -2007,7 +2012,9 @@ describe('PageService page operations with only public pages', () => {
       // duplicate descendants
       if (isRecursively) {
         await crowi.pageService.duplicateRecursivelyMainOperation(
-          ...argsForDuplicateRecursivelyMainOperation,
+          ...(argsForDuplicateRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.duplicateRecursivelyMainOperation
+          >),
         );
       }
 
@@ -2329,7 +2336,9 @@ describe('PageService page operations with only public pages', () => {
 
       if (isRecursively) {
         await crowi.pageService.deleteRecursivelyMainOperation(
-          ...argsForDeleteRecursivelyMainOperation,
+          ...(argsForDeleteRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.deleteRecursivelyMainOperation
+          >),
         );
       }
 
@@ -2526,7 +2535,9 @@ describe('PageService page operations with only public pages', () => {
 
       if (isRecursively) {
         await crowi.pageService.deleteCompletelyRecursivelyMainOperation(
-          ...argsForDeleteCompletelyRecursivelyMainOperation,
+          ...(argsForDeleteCompletelyRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.deleteCompletelyRecursivelyMainOperation
+          >),
         );
       }
 
@@ -2661,7 +2672,7 @@ describe('PageService page operations with only public pages', () => {
         endpoint: '/_api/v3/pages/deletecompletely',
       });
       const deltedPage = await Page.findOne({ _id: page?._id });
-      const deltedRevision = await Revision.findOne({ _id: revision._id });
+      const deltedRevision = await Revision.findOne({ _id: revision?._id });
 
       expect(deltedPage).toBeNull();
       expect(deltedRevision).toBeNull();
@@ -2734,7 +2745,9 @@ describe('PageService page operations with only public pages', () => {
       mockedRevertRecursivelyMainOperation.mockRestore();
       if (isRecursively) {
         await crowi.pageService.revertRecursivelyMainOperation(
-          ...argsForRecursivelyMainOperation,
+          ...(argsForRecursivelyMainOperation as Parameters<
+            typeof crowi.pageService.revertRecursivelyMainOperation
+          >),
         );
       }
 

+ 2 - 1
apps/app/test/integration/tsconfig.json

@@ -1,6 +1,7 @@
 {
   "extends": "../../tsconfig.json",
   "compilerOptions": {
-    "module": "CommonJS"
+    "module": "CommonJS",
+    "types": ["@types/jest"]
   }
 }