feat(platform): add mileage impact scope board

This commit is contained in:
lingniu
2026-07-04 22:35:05 +08:00
parent 5dea611dd9
commit 6803d51b78
3 changed files with 197 additions and 2 deletions

View File

@@ -7250,12 +7250,12 @@ test('shows mileage statistics workspace with trend source and definition', asyn
expect(screen.getByText('闭合差值')).toBeInTheDocument();
expect(screen.getByText('记录覆盖率')).toBeInTheDocument();
expect(screen.getAllByText('闭合通过').length).toBeGreaterThanOrEqual(1);
expect(screen.getByText('当前筛选范围汇总总里程与明细合计一致,可作为统计证据。')).toBeInTheDocument();
expect(screen.getAllByText('当前筛选范围汇总总里程与明细合计一致,可作为统计证据。').length).toBeGreaterThanOrEqual(1);
expect(screen.getByRole('button', { name: '复制闭合摘要' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: '闭合复核轨迹' })).toBeInTheDocument();
expect(screen.getByRole('button', { name: '闭合复核 RAW' })).toBeInTheDocument();
expect(screen.getByText('统计发布审计')).toBeInTheDocument();
expect(screen.getByText('复核后发布')).toBeInTheDocument();
expect(screen.getAllByText('复核后发布').length).toBeGreaterThanOrEqual(1);
expect(screen.getByText('区间闭合')).toBeInTheDocument();
expect(screen.getAllByText('记录覆盖').length).toBeGreaterThanOrEqual(1);
expect(screen.getByText('在线证据')).toBeInTheDocument();
@@ -7398,10 +7398,30 @@ test('shows vehicle-first statistics domains for one vehicle service', async ()
expect(screen.getByText('三类数据源最终汇总为一个车辆服务统计视图')).toBeInTheDocument();
expect(screen.getByText('当前统计证据')).toBeInTheDocument();
expect(screen.getByText('3 车 / 2 来源 / 3 条明细')).toBeInTheDocument();
expect(screen.getByText('统计影响范围')).toBeInTheDocument();
expect(screen.getByRole('button', { name: '复制影响范围' })).toBeInTheDocument();
expect(screen.getByText('影响待复核')).toBeInTheDocument();
expect(screen.getByText('3 辆车')).toBeInTheDocument();
expect(screen.getByText('当前筛选会影响 6 条里程记录、210 km 统计口径和 1 辆离线车辆判断。')).toBeInTheDocument();
expect(screen.getByText('影响车辆')).toBeInTheDocument();
expect(screen.getByText('统计规模')).toBeInTheDocument();
expect(screen.getByText('闭合影响')).toBeInTheDocument();
expect(screen.getByText('异常影响')).toBeInTheDocument();
expect(screen.getAllByText('发布判断').length).toBeGreaterThanOrEqual(1);
expect(await screen.findByText('75%')).toBeInTheDocument();
expect(screen.getAllByText((content) => content.includes('离线 1 车')).length).toBeGreaterThanOrEqual(1);
expect(screen.getAllByText((content) => content.includes('Redis 在线 92 key')).length).toBeGreaterThanOrEqual(1);
expect(screen.getAllByText((content) => content.includes('由车辆服务覆盖汇总、实时来源状态和 Redis 在线 key 计算')).length).toBeGreaterThanOrEqual(1);
fireEvent.click(screen.getByRole('button', { name: '复制影响范围' }));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('【统计影响范围】'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('车辆范围VIN-STATS-SERVICE'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('数据来源JT808'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('影响车辆3 辆'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('统计记录6 条'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('累计里程210 km'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('在线状态3 在线 / 1 离线 / 在线率 75%'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('发布判断:复核后发布'));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('业务影响当前统计范围需要先复核轨迹、RAW和离线车辆影响'));
expect(await screen.findByText('在线状态明细')).toBeInTheDocument();
expect(await screen.findByText('VIN-STATS-SERVICE-OFFLINE')).toBeInTheDocument();
expect(screen.getByText('粤A离线1')).toBeInTheDocument();