diff --git a/vehicle-data-platform/apps/web/src/test/App.test.tsx b/vehicle-data-platform/apps/web/src/test/App.test.tsx
index 2dbe5aac..02b0f6c3 100644
--- a/vehicle-data-platform/apps/web/src/test/App.test.tsx
+++ b/vehicle-data-platform/apps/web/src/test/App.test.tsx
@@ -8179,6 +8179,13 @@ test('shows parsed field history as a flattened evidence table', async () => {
render(
);
expect(await screen.findByRole('heading', { name: '历史查询导出' })).toBeInTheDocument();
+ expect(screen.getByText('客户数据交付封面')).toBeInTheDocument();
+ expect(screen.getByText('先给客户一个可读封面:交付结论、车辆范围、时间窗、交付物、质量提示和下一步动作。')).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: '客户数据交付封面 交付结论 可交付 复制封面' })).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: '客户数据交付封面 轨迹报告 0 点 补查轨迹' })).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: '客户数据交付封面 字段证据 2 字段 导出字段' })).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: '客户数据交付封面 客户说明 可复制 复制说明' })).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: /复制交付封面包/ })).toBeInTheDocument();
expect(screen.getByText('客户数据交付结论条')).toBeInTheDocument();
expect(screen.getByText('先判断这次查询能交付什么,再选择导出位置、明细证据、字段裁剪或复制说明。')).toBeInTheDocument();
expect(screen.getByRole('button', { name: '客户数据交付结论 交付状态 可交付' })).toBeInTheDocument();
@@ -8307,6 +8314,14 @@ test('shows parsed field history as a flattened evidence table', async () => {
expect(screen.getByRole('button', { name: '客户交付清单 明细证据 导出证据' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: '客户交付清单 字段裁剪 字段配置' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: '客户交付清单 质量提示 复制清单' })).toBeInTheDocument();
+ fireEvent.click(screen.getByRole('button', { name: /复制交付封面包/ }));
+ await waitFor(() => {
+ expect(writeText).toHaveBeenCalledWith(expect.stringContaining('【客户数据交付封面包】'));
+ });
+ expect(writeText).toHaveBeenCalledWith(expect.stringContaining('交付主题:VIN-FIELDS-001 / GB32960 / 2026-07-03 至 2026-07-04'));
+ expect(writeText).toHaveBeenCalledWith(expect.stringContaining('交付物:轨迹报告 / 位置历史 CSV / 明细证据 CSV / 字段裁剪 CSV / 统计查询链接 / 质量提示'));
+ expect(writeText).toHaveBeenCalledWith(expect.stringContaining('当前证据:位置 0 条 / 有效坐标 0 点 / 明细 1 帧 / 字段 2 个'));
+ expect(writeText).toHaveBeenCalledWith(expect.stringContaining('建议动作:优先导出字段证据,并补查轨迹位置。'));
fireEvent.click(screen.getByRole('button', { name: /复制交付清单/ }));
await waitFor(() => {
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('交付物:轨迹报告 / 位置历史 / 统计查询 / 明细证据 / 字段裁剪 / 质量提示'));