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'
    });
  });
});
