feat(platform): add mileage publish audit
This commit is contained in:
@@ -6920,7 +6920,7 @@ test('opens vehicle service from mileage row with row source evidence', async ()
|
||||
render(<App />);
|
||||
|
||||
expect(await screen.findByText('VIN-MILEAGE-ROW')).toBeInTheDocument();
|
||||
fireEvent.click(screen.getByRole('button', { name: '车辆服务' }));
|
||||
fireEvent.click(screen.getAllByRole('button', { name: '车辆服务' })[0]);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(window.location.hash).toBe('#/detail?keyword=VIN-MILEAGE-ROW&protocol=JT808');
|
||||
@@ -7236,6 +7236,12 @@ test('shows mileage statistics workspace with trend source and definition', asyn
|
||||
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.getByText('区间闭合')).toBeInTheDocument();
|
||||
expect(screen.getAllByText('记录覆盖').length).toBeGreaterThanOrEqual(1);
|
||||
expect(screen.getByText('在线证据')).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: '复制统计发布审计' })).toBeInTheDocument();
|
||||
expect(screen.getAllByText('异常记录').length).toBeGreaterThanOrEqual(1);
|
||||
expect(screen.getAllByText('1').length).toBeGreaterThanOrEqual(1);
|
||||
expect(screen.getByText('最大单日')).toBeInTheDocument();
|
||||
@@ -7376,8 +7382,8 @@ test('shows vehicle-first statistics domains for one vehicle service', async ()
|
||||
expect(screen.getByText('3 车 / 2 来源 / 3 条明细')).toBeInTheDocument();
|
||||
expect(await screen.findByText('75%')).toBeInTheDocument();
|
||||
expect(screen.getAllByText((content) => content.includes('离线 1 车')).length).toBeGreaterThanOrEqual(1);
|
||||
expect(screen.getByText((content) => content.includes('Redis 在线 92 key'))).toBeInTheDocument();
|
||||
expect(screen.getByText((content) => content.includes('由车辆服务覆盖汇总、实时来源状态和 Redis 在线 key 计算'))).toBeInTheDocument();
|
||||
expect(screen.getAllByText((content) => content.includes('Redis 在线 92 key')).length).toBeGreaterThanOrEqual(1);
|
||||
expect(screen.getAllByText((content) => content.includes('由车辆服务覆盖汇总、实时来源状态和 Redis 在线 key 计算')).length).toBeGreaterThanOrEqual(1);
|
||||
expect(await screen.findByText('在线状态明细')).toBeInTheDocument();
|
||||
expect(await screen.findByText('VIN-STATS-SERVICE-OFFLINE')).toBeInTheDocument();
|
||||
expect(screen.getByText('粤A离线1')).toBeInTheDocument();
|
||||
@@ -7453,6 +7459,7 @@ test('copies mileage statistics summary for operations reporting', async () => {
|
||||
expect(await screen.findByText('区间趋势')).toBeInTheDocument();
|
||||
expect(screen.getByText('BI发布口径')).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: '复制BI发布口径' })).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: '复制统计发布审计' })).toBeInTheDocument();
|
||||
fireEvent.click(screen.getAllByRole('button', { name: '复制统计摘要' })[0]);
|
||||
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('【里程统计摘要】'));
|
||||
@@ -7475,6 +7482,12 @@ test('copies mileage statistics summary for operations reporting', async () => {
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('异常记录:1'));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('来源一致性:可做跨来源核对'));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('发布风险:存在分页未全量、异常记录或闭合差值,需要先复核轨迹和 RAW 证据'));
|
||||
fireEvent.click(screen.getByRole('button', { name: '复制统计发布审计' }));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('【统计发布审计】'));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('发布结论:复核后发布'));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('审计结果:通过 1 / 复核 4 / 阻断 0'));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('[复核] 记录覆盖:50%'));
|
||||
expect(writeText).toHaveBeenCalledWith(expect.stringContaining('[复核] 异常记录:1'));
|
||||
});
|
||||
|
||||
test('exports current mileage page as CSV', async () => {
|
||||
|
||||
Reference in New Issue
Block a user