diff --git a/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.test.tsx b/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.test.tsx index 39dddf3f..778e48e6 100644 --- a/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.test.tsx +++ b/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.test.tsx @@ -79,6 +79,7 @@ test('polls lightweight single-vehicle realtime data and passes its report inter ])); const commandCard = view.container.querySelector('.v2-identity-band'); expect(commandCard).toHaveClass('semi-card', 'v2-vehicle-command-card', 'v2-live-overview'); + expect(screen.getByLabelText('粤A12345 车辆档案')).toHaveClass('v2-vehicle-record-v3'); expect(screen.getByLabelText('单车任务栏')).toHaveClass('v2-workspace-command-bar', 'v2-vehicle-record-command'); expect(screen.getByLabelText('单车任务栏')).toHaveTextContent('粤A12345'); expect(screen.getByLabelText('单车任务栏')).toHaveTextContent('LTEST000000000001'); @@ -181,6 +182,7 @@ test('shows deduplicated Semi vehicle candidates and opens the selected VIN', as expect(screen.getByText('本页在线 1')).toBeInTheDocument(); expect(screen.getByText('多源车辆 0')).toBeInTheDocument(); expect(view.container.querySelector('.v2-vehicle-directory-table.semi-table-wrapper')).toBeInTheDocument(); + expect(view.container.querySelector('.v2-vehicle-search-page')).toHaveClass('v2-vehicle-directory-v3'); expect(view.container.querySelector('.v2-vehicle-directory-profile')).toHaveTextContent('测试品牌13800000000'); expect(view.container.querySelector('.v2-vehicle-discovery-shell')).toContainElement(screen.getByLabelText('查车操作')); expect(screen.getByRole('button', { name: `打开 ${initialRealtime.vin} 车辆档案` })).toBeInTheDocument(); @@ -485,11 +487,14 @@ test('uses compact Semi telemetry evidence cards on mobile', async () => { expect(document.querySelector('.v2-telemetry-table')).not.toBeInTheDocument(); expect(document.querySelector('.v2-telemetry-mobile-list.semi-list')).toBeInTheDocument(); expect(document.querySelector('.v2-telemetry-mobile-item.semi-list-item')).toHaveTextContent('36km/h正常'); - expect(document.querySelector('.v2-vehicle-record-page')).toHaveClass('is-mobile-layout'); + expect(document.querySelector('.v2-vehicle-record-page')).toHaveClass('v2-vehicle-record-v3', 'is-mobile-layout'); expect(screen.getByRole('group', { name: '车辆快捷操作' }).querySelectorAll('.semi-button')).toHaveLength(5); expect(screen.getByRole('group', { name: '车辆快捷操作' })).toHaveTextContent('切换车辆轨迹回放历史数据里程查询告警事件'); expect(document.querySelectorAll('.v2-identity-sources .semi-tag')).toHaveLength(3); expect(document.querySelector('.v2-identity-sources')).toHaveTextContent('GB/T 32960JT/T 808宇通 MQTT'); expect(document.querySelector('.v2-vehicle-command-card .v2-live-grid')).toHaveAttribute('aria-label', '车辆实时指标'); expect(document.querySelectorAll('.v2-vehicle-command-card .v2-live-grid > [role="listitem"]')).toHaveLength(6); + expect(document.querySelector('.v2-live-metric.is-speed')).toHaveTextContent('速度'); + expect(document.querySelector('.v2-live-metric.is-today-mileage')).toHaveTextContent('当日里程'); + expect(document.querySelector('.v2-live-metric.is-source-status')).toHaveTextContent('来源状态'); }); diff --git a/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.tsx b/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.tsx index 3d9b6ff0..614a32e1 100644 --- a/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.tsx +++ b/vehicle-data-platform/apps/web/src/v2/pages/VehiclePage.tsx @@ -454,7 +454,7 @@ function VehicleRecord({ detail, liveRealtime, telemetry, telemetryPending, tele for (const eventName of interactionEvents) window.removeEventListener(eventName, cancelEntryReset, true); }; }, [detail.vin]); - return