refine Semi UI access evidence inspector
This commit is contained in:
@@ -157,7 +157,11 @@ test('does not request or render admin-only thresholds for a read-only session',
|
||||
test('renders mobile access vehicles as selectable Semi cards', async () => {
|
||||
layout.mobile = true;
|
||||
prepareBaseData();
|
||||
mocks.accessVehicles.mockResolvedValue({ items: [accessRow('VIN001', '粤A00001')], total: 1, limit: 50, offset: 0 });
|
||||
const delayedRow = accessRow('VIN001', '粤A00001');
|
||||
delayedRow.connectionState = 'degraded';
|
||||
delayedRow.protocolStatuses[0].delayAbnormal = true;
|
||||
delayedRow.protocolStatuses[0].dataDelaySec = 128;
|
||||
mocks.accessVehicles.mockResolvedValue({ items: [delayedRow], total: 1, limit: 50, offset: 0 });
|
||||
const client = new QueryClient({ defaultOptions: { queries: { retry: false } } });
|
||||
const view = render(<QueryClientProvider client={client}><MemoryRouter future={ROUTER_FUTURE} initialEntries={['/access']}><AccessPage /></MemoryRouter></QueryClientProvider>);
|
||||
|
||||
@@ -191,9 +195,25 @@ test('renders mobile access vehicles as selectable Semi cards', async () => {
|
||||
expect(within(dialog).getByRole('button', { name: '关闭车辆接入详情' })).toBeInTheDocument();
|
||||
expect(dialog.querySelector('.v2-access-inspector-v3.semi-card')).toBeInTheDocument();
|
||||
expect(dialog.querySelector('.v2-access-inspector-focus.semi-card')).toBeInTheDocument();
|
||||
expect(dialog.querySelector('.v2-access-inspector-summary.semi-descriptions')).toBeInTheDocument();
|
||||
expect(dialog.querySelector('.v2-access-inspector-summary-grid')).toHaveAttribute('aria-label', '车辆接入概览');
|
||||
expect(within(dialog).getByText('协议证据')).toBeInTheDocument();
|
||||
expect(within(dialog).getByText('1 / 3 已接入').closest('.semi-tag')).toBeInTheDocument();
|
||||
expect(dialog.querySelector('.v2-access-protocol-details.semi-card-group')).toBeInTheDocument();
|
||||
expect(dialog.querySelectorAll('.v2-access-protocol-detail.semi-card')).toHaveLength(3);
|
||||
const evidenceToggle = within(dialog).getByRole('button', { name: '收起 JT808 完整证据' });
|
||||
expect(evidenceToggle).toHaveAttribute('aria-expanded', 'true');
|
||||
expect(within(dialog).getByRole('region', { name: 'JT808 完整接入证据' })).toBeInTheDocument();
|
||||
expect(within(dialog).getByText('test first seen')).toBeInTheDocument();
|
||||
expect(within(dialog).getAllByText('当前未发现真实接入来源')).toHaveLength(2);
|
||||
const vehicleRequestsBeforeEvidenceToggle = mocks.accessVehicles.mock.calls.length;
|
||||
const summaryRequestsBeforeEvidenceToggle = mocks.accessSummary.mock.calls.length;
|
||||
fireEvent.click(evidenceToggle);
|
||||
expect(within(dialog).getByRole('button', { name: '查看 JT808 完整证据' })).toHaveAttribute('aria-expanded', 'false');
|
||||
expect(within(dialog).queryByRole('region', { name: 'JT808 完整接入证据' })).not.toBeInTheDocument();
|
||||
fireEvent.click(within(dialog).getByRole('button', { name: '查看 JT808 完整证据' }));
|
||||
expect(within(dialog).getByRole('button', { name: '收起 JT808 完整证据' })).toHaveAttribute('aria-expanded', 'true');
|
||||
expect(mocks.accessVehicles).toHaveBeenCalledTimes(vehicleRequestsBeforeEvidenceToggle);
|
||||
expect(mocks.accessSummary).toHaveBeenCalledTimes(summaryRequestsBeforeEvidenceToggle);
|
||||
expect(document.querySelector('.v2-access-detail-sidesheet')).toHaveClass('semi-sidesheet-bottom');
|
||||
expect(document.querySelector('.v2-access-detail-sidesheet .semi-sidesheet-inner')).toHaveStyle({ height: 'min(84dvh, 740px)' });
|
||||
fireEvent.click(within(dialog).getByRole('button', { name: '关闭车辆接入详情' }));
|
||||
|
||||
Reference in New Issue
Block a user