feat(platform): share vehicle service verdict logic

This commit is contained in:
lingniu
2026-07-04 10:25:41 +08:00
parent 295a7df396
commit 1f116ccaa8
4 changed files with 158 additions and 81 deletions

View File

@@ -0,0 +1,43 @@
import { describe, expect, test } from 'vitest';
import { summarizeVehicleService } from './vehicleService';
describe('summarizeVehicleService', () => {
test('marks unresolved vehicles as unavailable', () => {
expect(summarizeVehicleService({ resolved: false, sourceCount: 1, onlineSourceCount: 1 })).toMatchObject({
status: '不可服务',
risk: '身份未归并到 VIN'
});
});
test('prioritizes quality issues before missing source warnings', () => {
expect(summarizeVehicleService({
resolved: true,
sourceCount: 3,
onlineSourceCount: 2,
qualityIssueCount: 3,
missingProtocols: ['YUTONG_MQTT']
})).toMatchObject({
status: '降级可服务',
risk: '3 项质量问题影响可信度'
});
});
test('detects missing protocol evidence', () => {
expect(summarizeVehicleService({
resolved: true,
sourceCount: 2,
onlineSourceCount: 2,
missingProtocols: ['JT808', 'YUTONG_MQTT']
})).toMatchObject({
status: '降级可服务',
risk: '缺少 JT808、YUTONG_MQTT 来源'
});
});
test('marks complete online evidence as serviceable', () => {
expect(summarizeVehicleService({ resolved: true, sourceCount: 3, onlineSourceCount: 3 })).toMatchObject({
status: '可服务',
color: 'green'
});
});
});