feat: unify mobile vehicle diagnostics

This commit is contained in:
lingniu
2026-07-18 23:41:26 +08:00
parent c8814f471b
commit 045482c161
3 changed files with 231 additions and 23 deletions

View File

@@ -409,18 +409,32 @@ test('allows provider maintenance but keeps canonical source policy read only',
const client = new QueryClient({ defaultOptions: { queries: { retry: false } } });
renderOperations(client);
fireEvent.click(screen.getByRole('tab', { name: '单车诊断' }));
fireEvent.change(screen.getByLabelText('按车牌或 VIN 搜索诊断车辆'), { target: { value: '沪A' } });
const filterToggle = screen.getByRole('button', { name: '修改诊断车辆:尚未选择车辆' });
expect(filterToggle).toHaveAttribute('aria-expanded', 'false');
fireEvent.click(filterToggle);
const filterDialog = await screen.findByRole('dialog', { name: '诊断车辆筛选' });
expect(document.querySelector('.v2-source-mobile-filter-sidesheet')).toHaveClass('semi-sidesheet-bottom');
expect(document.querySelector('.v2-source-mobile-filter-sidesheet .semi-sidesheet-inner')).toHaveStyle({ height: 'min(78dvh, 660px)' });
fireEvent.change(within(filterDialog).getByLabelText('按车牌或 VIN 搜索诊断车辆'), { target: { value: '沪A' } });
const candidateButton = await waitFor(() => {
const button = document.querySelector<HTMLButtonElement>('.v2-source-candidates button');
const button = filterDialog.querySelector<HTMLButtonElement>('.v2-source-candidates button');
expect(button).toBeTruthy();
return button!;
});
fireEvent.click(candidateButton);
expect(await screen.findByText('协议融合快照只能维护提供方')).toBeInTheDocument();
expect(screen.getByRole('button', { name: '修改诊断车辆:已选 沪A00001' })).toHaveAttribute('aria-expanded', 'false');
expect(document.querySelector('.v2-source-filter-panel')).toHaveClass('is-mobile-collapsed');
expect(document.querySelector('.v2-source-search')).toHaveClass('is-mobile-collapsed');
const selectedToggle = screen.getByRole('button', { name: '修改诊断车辆:已选 沪A00001' });
expect(selectedToggle).toHaveAttribute('aria-expanded', 'false');
expect(filterDialog).toHaveClass('semi-sidesheet-animation-content_hide_bottom');
fireEvent.click(selectedToggle);
const selectedSearch = within(filterDialog).getByLabelText('按车牌或 VIN 搜索诊断车辆');
expect(selectedSearch).toHaveValue('沪A00001');
fireEvent.change(selectedSearch, { target: { value: '其他车辆' } });
fireEvent.click(within(filterDialog).getByRole('button', { name: '关闭诊断车辆筛选' }));
fireEvent.click(selectedToggle);
expect(selectedSearch).toHaveValue('沪A00001');
fireEvent.click(within(filterDialog).getByRole('button', { name: '关闭诊断车辆筛选' }));
expect(document.querySelector('.v2-source-table')).not.toBeInTheDocument();
expect(document.querySelector('.v2-source-mobile-card.semi-card')).toBeInTheDocument();
expect(document.querySelector('.v2-source-mobile-descriptions.semi-descriptions')).toBeInTheDocument();