Shun Miyazawa 5 дней назад
Родитель
Сommit
111ab3c244

+ 37 - 15
apps/app/src/server/routes/apiv3/page/respond-with-single-page.spec.ts

@@ -8,6 +8,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
 
 
 import type { PageDocument } from '~/server/models/page';
 import type { PageDocument } from '~/server/models/page';
 
 
+import type { ApiV3Response } from '../interfaces/apiv3-response';
+
 // Mock logger to avoid path resolution issues in tests
 // Mock logger to avoid path resolution issues in tests
 vi.mock('~/utils/logger', () => ({
 vi.mock('~/utils/logger', () => ({
   default: () => ({
   default: () => ({
@@ -43,7 +45,6 @@ describe('respondWithSinglePage', () => {
 
 
     mockPage = {
     mockPage = {
       path: '/normal-page',
       path: '/normal-page',
-      _id: '123',
       initLatestRevisionField: vi.fn(),
       initLatestRevisionField: vi.fn(),
       populateDataToShowRevision: vi.fn(),
       populateDataToShowRevision: vi.fn(),
     };
     };
@@ -62,12 +63,15 @@ describe('respondWithSinglePage', () => {
         HydratedDocument<PageDocument>,
         HydratedDocument<PageDocument>,
         IPageInfoExt
         IPageInfoExt
       > = {
       > = {
-        data: mockPage as HydratedDocument<PageDocument>,
+        data: mockPage as unknown as HydratedDocument<PageDocument>,
         meta: mockMeta,
         meta: mockMeta,
       };
       };
 
 
       // Act
       // Act
-      await respondWithSinglePage(mockRes, pageWithMeta);
+      await respondWithSinglePage(
+        mockRes as unknown as ApiV3Response,
+        pageWithMeta,
+      );
 
 
       // Assert
       // Assert
       expect(mockRes.apiv3).toHaveBeenCalledWith(
       expect(mockRes.apiv3).toHaveBeenCalledWith(
@@ -89,12 +93,16 @@ describe('respondWithSinglePage', () => {
         HydratedDocument<PageDocument>,
         HydratedDocument<PageDocument>,
         IPageInfoExt
         IPageInfoExt
       > = {
       > = {
-        data: mockPage as HydratedDocument<PageDocument>,
+        data: mockPage as unknown as HydratedDocument<PageDocument>,
         meta: mockMeta,
         meta: mockMeta,
       };
       };
 
 
       // Act
       // Act
-      await respondWithSinglePage(mockRes, pageWithMeta, { revisionId });
+      await respondWithSinglePage(
+        mockRes as unknown as ApiV3Response,
+        pageWithMeta,
+        { revisionId },
+      );
 
 
       // Assert
       // Assert
       expect(mockPage.initLatestRevisionField).toHaveBeenCalledWith(revisionId);
       expect(mockPage.initLatestRevisionField).toHaveBeenCalledWith(revisionId);
@@ -114,7 +122,10 @@ describe('respondWithSinglePage', () => {
       };
       };
 
 
       // Act
       // Act
-      await respondWithSinglePage(mockRes, pageWithMeta);
+      await respondWithSinglePage(
+        mockRes as unknown as ApiV3Response,
+        pageWithMeta,
+      );
 
 
       // Assert
       // Assert
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
@@ -139,14 +150,18 @@ describe('respondWithSinglePage', () => {
         HydratedDocument<PageDocument>,
         HydratedDocument<PageDocument>,
         IPageInfoExt
         IPageInfoExt
       > = {
       > = {
-        data: userPageMock as HydratedDocument<PageDocument>,
+        data: userPageMock as unknown as HydratedDocument<PageDocument>,
         meta: mockMeta,
         meta: mockMeta,
       };
       };
 
 
       // Act
       // Act
-      await respondWithSinglePage(mockRes, pageWithMeta, {
-        disableUserPages: true,
-      });
+      await respondWithSinglePage(
+        mockRes as unknown as ApiV3Response,
+        pageWithMeta,
+        {
+          disableUserPages: true,
+        },
+      );
 
 
       // Assert
       // Assert
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
@@ -171,14 +186,18 @@ describe('respondWithSinglePage', () => {
         HydratedDocument<PageDocument>,
         HydratedDocument<PageDocument>,
         IPageInfoExt
         IPageInfoExt
       > = {
       > = {
-        data: userTopPageMock as HydratedDocument<PageDocument>,
+        data: userTopPageMock as unknown as HydratedDocument<PageDocument>,
         meta: mockMeta,
         meta: mockMeta,
       };
       };
 
 
       // Act
       // Act
-      await respondWithSinglePage(mockRes, pageWithMeta, {
-        disableUserPages: true,
-      });
+      await respondWithSinglePage(
+        mockRes as unknown as ApiV3Response,
+        pageWithMeta,
+        {
+          disableUserPages: true,
+        },
+      );
 
 
       // Assert
       // Assert
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
@@ -204,7 +223,10 @@ describe('respondWithSinglePage', () => {
       };
       };
 
 
       // Act
       // Act
-      await respondWithSinglePage(mockRes, pageWithMeta);
+      await respondWithSinglePage(
+        mockRes as unknown as ApiV3Response,
+        pageWithMeta,
+      );
 
 
       // Assert
       // Assert
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(
       expect(mockRes.apiv3Err).toHaveBeenCalledWith(

+ 5 - 5
apps/app/src/states/page/use-fetch-current-page.spec.tsx

@@ -1072,10 +1072,10 @@ describe('useFetchCurrentPage - Integration Test', () => {
       });
       });
     });
     });
 
 
-    // Assert: API should be called with pageId (not path=/share/...) and shareLinkId
+    // Assert: API should be called with /page/shared endpoint, pageId (not path=/share/...) and shareLinkId
     await waitFor(() => {
     await waitFor(() => {
       expect(mockedApiv3Get).toHaveBeenCalledWith(
       expect(mockedApiv3Get).toHaveBeenCalledWith(
-        '/page',
+        '/page/shared',
         expect.objectContaining({
         expect.objectContaining({
           pageId,
           pageId,
           shareLinkId,
           shareLinkId,
@@ -1083,7 +1083,7 @@ describe('useFetchCurrentPage - Integration Test', () => {
       );
       );
       // path should NOT be sent
       // path should NOT be sent
       expect(mockedApiv3Get).toHaveBeenCalledWith(
       expect(mockedApiv3Get).toHaveBeenCalledWith(
-        '/page',
+        '/page/shared',
         expect.not.objectContaining({ path: expect.anything() }),
         expect.not.objectContaining({ path: expect.anything() }),
       );
       );
       expect(store.get(currentPageEntityIdAtom)).toBe(pageId);
       expect(store.get(currentPageEntityIdAtom)).toBe(pageId);
@@ -1109,10 +1109,10 @@ describe('useFetchCurrentPage - Integration Test', () => {
       await result.current.fetchCurrentPage({ path: '/some/path' });
       await result.current.fetchCurrentPage({ path: '/some/path' });
     });
     });
 
 
-    // Assert: Falls through to path-based logic since currentPageId is null
+    // Assert: Falls through to path-based logic since currentPageId is null, but still uses /page/shared
     await waitFor(() => {
     await waitFor(() => {
       expect(mockedApiv3Get).toHaveBeenCalledWith(
       expect(mockedApiv3Get).toHaveBeenCalledWith(
-        '/page',
+        '/page/shared',
         expect.objectContaining({
         expect.objectContaining({
           path: '/some/path',
           path: '/some/path',
           shareLinkId,
           shareLinkId,