feat: unify source diagnostics with semi ui

This commit is contained in:
lingniu
2026-07-19 12:07:12 +08:00
parent 031e22de79
commit 7df015b0f0
4 changed files with 84 additions and 19 deletions

View File

@@ -356,13 +356,14 @@ test('fuzzy searches a vehicle and renders all source diagnosis evidence', async
expect(await screen.findByText('当前推荐 G7')).toBeInTheDocument();
expect(screen.getByText('1 个来源')).toBeInTheDocument();
expect(screen.getByRole('group', { name: '车辆来源诊断概览' })).toHaveClass('v2-source-summary-region');
expect(document.querySelector('.v2-source-summary-region > .v2-source-summary.semi-card-group')).toBeInTheDocument();
expect(document.querySelectorAll('.v2-source-summary-card.semi-card')).toHaveLength(4);
expect(document.querySelector('.v2-source-summary-card.is-vehicle')).toHaveTextContent('粤A00001');
expect(document.querySelector('.v2-source-summary-card.is-recommended')).toHaveTextContent('G7');
expect(document.querySelector('.v2-source-summary-card.is-source-health')).toHaveClass('is-warning');
expect(document.querySelector('.v2-source-summary-card.is-policy')).toHaveTextContent('v1');
expect(document.querySelectorAll('.v2-source-summary-card')[1]?.querySelector('.semi-tag')).toHaveTextContent('JT808');
const sourceSummary = screen.getByRole('list', { name: '车辆来源诊断概览' });
expect(sourceSummary.closest('.v2-source-summary-rail')).toHaveClass('v2-workspace-metric-rail', 'is-queue');
expect(sourceSummary.querySelectorAll(':scope > [role="listitem"]')).toHaveLength(4);
expect(sourceSummary).toHaveTextContent('来源状态1 / 1位置冲突 233m');
expect(sourceSummary).toHaveTextContent('当前推荐G7JT808');
expect(sourceSummary).toHaveTextContent('车辆粤A00001VIN001');
expect(sourceSummary).toHaveTextContent('策略版本v1尚无人工调整');
expect(sourceSummary.querySelector(':scope > [role="listitem"]')).toHaveClass('is-warning', 'is-primary');
expect(screen.getByText('推荐说明').closest('.semi-card')).toHaveClass('v2-source-recommendation');
expect(screen.getByText('最近策略审计').closest('.semi-card')).toHaveClass('v2-source-audit');
expect(screen.getByText('终端 133****0001')).toBeInTheDocument();
@@ -455,8 +456,8 @@ test('allows provider maintenance but keeps canonical source policy read only',
expect(document.querySelector('.v2-source-mobile-card.semi-card')).toBeInTheDocument();
expect(document.querySelector('.v2-source-mobile-descriptions.semi-descriptions')).toBeInTheDocument();
expect(screen.getByRole('group', { name: '车辆来源诊断概览' })).toHaveClass('v2-source-summary-region');
expect(document.querySelector('.v2-source-summary-region > .v2-source-summary.semi-card-group')).toBeInTheDocument();
expect(document.querySelectorAll('.v2-source-summary-card.semi-card')).toHaveLength(4);
expect(screen.getByRole('list', { name: '车辆来源诊断概览' }).closest('.v2-source-summary-rail')).toHaveClass('v2-workspace-metric-rail', 'is-queue');
expect(screen.getByRole('list', { name: '车辆来源诊断概览' }).querySelectorAll(':scope > [role="listitem"]')).toHaveLength(4);
expect(screen.getByText('优先级 100')).toBeInTheDocument();
expect(screen.queryByLabelText('JT808 优先级')).not.toBeInTheDocument();
fireEvent.click(screen.getByRole('button', { name: '维护提供方' }));