From 439ac41da896434a7d892bbb72f0defd3608f807 Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 13 Jul 2026 09:29:22 +0800 Subject: [PATCH] fix(frontend): correct Pages deployment files route Align the Pages deployment file-list request with the backend route and add a regression test. --- docs/changelog/index.md | 4 +++ .../app/(main)/pages/detail/page-client.tsx | 2 +- .../lib/services/openflare/pages.service.ts | 5 ++- .../tests/openflare/pages-service.test.ts | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 frontend/tests/openflare/pages-service.test.ts diff --git a/docs/changelog/index.md b/docs/changelog/index.md index f23384c2..9c07cc11 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -21,6 +21,10 @@ sidebar: false ## [unreleased] +### 修复 + +- 修复 Pages 部署文件清单前端请求路径与后端路由不一致导致的 404 错误。 + ## [v3.2.0] - 2026-07-12 ### 新增 diff --git a/frontend/app/(main)/pages/detail/page-client.tsx b/frontend/app/(main)/pages/detail/page-client.tsx index 2ee4eece..bc9ccdad 100644 --- a/frontend/app/(main)/pages/detail/page-client.tsx +++ b/frontend/app/(main)/pages/detail/page-client.tsx @@ -45,7 +45,7 @@ function DeploymentFilesPanel({ }) { const filesQuery = useQuery({ queryKey: deploymentFilesQueryKey(projectId, deployment.id), - queryFn: () => PagesService.listDeploymentFiles(projectId, deployment.id), + queryFn: () => PagesService.listDeploymentFiles(deployment.id), }) if (filesQuery.isLoading) { diff --git a/frontend/lib/services/openflare/pages.service.ts b/frontend/lib/services/openflare/pages.service.ts index 8bf823be..b7d01531 100644 --- a/frontend/lib/services/openflare/pages.service.ts +++ b/frontend/lib/services/openflare/pages.service.ts @@ -44,11 +44,10 @@ export class PagesService extends OpenFlareBaseService { } static listDeploymentFiles( - projectId: number, deploymentId: number, ): Promise { return this.get( - `/${projectId}/deployments/${deploymentId}/files`, + `/deployments/${deploymentId}/files`, ); } @@ -107,4 +106,4 @@ export class PagesService extends OpenFlareBaseService { return response.data.data; } -} \ No newline at end of file +} diff --git a/frontend/tests/openflare/pages-service.test.ts b/frontend/tests/openflare/pages-service.test.ts new file mode 100644 index 00000000..f9a82d1a --- /dev/null +++ b/frontend/tests/openflare/pages-service.test.ts @@ -0,0 +1,34 @@ +import {beforeEach, describe, expect, it, vi} from 'vitest'; +import type {AxiosResponse} from 'axios'; + +import apiClient from '@/lib/services/core/api-client'; +import {PagesService} from '@/lib/services/openflare/pages.service'; + +vi.mock('@/lib/services/core/api-client', () => ({ + default: { + get: vi.fn(), + }, +})); + +describe('PagesService', () => { + beforeEach(() => { + vi.mocked(apiClient.get).mockReset(); + }); + + it('requests deployment files using the backend deployment route', async () => { + vi.mocked(apiClient.get).mockResolvedValue({ + data: {error_msg: '', data: []}, + status: 200, + statusText: 'OK', + headers: {}, + config: {headers: {}}, + } as AxiosResponse); + + await PagesService.listDeploymentFiles(7); + + expect(apiClient.get).toHaveBeenCalledWith( + '/api/v1/d/pages/deployments/7/files', + expect.objectContaining({params: undefined}), + ); + }); +});