feat: 补齐开放平台车辆实况与统计时间字段
This commit is contained in:
@@ -79,3 +79,36 @@ func TestOpenAPISpecCoversPublicAndManagementEndpoints(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestLiveContractDocumentationCoversSerializedFieldsAndQuality(t *testing.T) {
|
||||
// Public additions must be discoverable in both the machine contract and the
|
||||
// human-readable documentation, including their null/quality companions.
|
||||
for _, field := range []string{
|
||||
"remainingHydrogenKg", "remainingHydrogenPercent", "hydrogenRecordTime",
|
||||
"hydrogenDataStatus", "remainingHydrogenKgStatus", "remainingHydrogenPercentStatus",
|
||||
"hydrogenValueSource", "hydrogenSourceProtocol", "hydrogenStaleAfterSeconds",
|
||||
"hydrogenExpectedIntervalSeconds", "gpsFixStatus", "locationRecordTime",
|
||||
"coordinateSystem", "statisticsStartTime", "statisticsEndTime",
|
||||
"updatedAt", "calculationPhase", "qualityStatus", "algorithmVersion",
|
||||
} {
|
||||
if !strings.Contains(string(openAPISpec), field+":") {
|
||||
t.Errorf("OpenAPI missing live contract field %s", field)
|
||||
}
|
||||
if !strings.Contains(string(simpleDocsHTML), field) {
|
||||
t.Errorf("HTML missing live contract field %s", field)
|
||||
}
|
||||
}
|
||||
for name, doc := range map[string]string{"OpenAPI": string(openAPISpec), "HTML": string(simpleDocsHTML)} {
|
||||
for _, boundary := range []string{"PARTIAL", "UNSUPPORTED", "UNKNOWN", "PRELIMINARY", "FINAL", "SUSPECT", "REPORTED", "共同快照", "null"} {
|
||||
if !strings.Contains(doc, boundary) {
|
||||
t.Errorf("%s missing availability/comparability boundary %q", name, boundary)
|
||||
}
|
||||
}
|
||||
}
|
||||
if strings.Contains(string(openAPISpec), "MEASURED") || strings.Contains(string(simpleDocsHTML), "MEASURED") {
|
||||
t.Error("reported hydrogen must not promise a measured terminal value")
|
||||
}
|
||||
if strings.Contains(string(simpleDocsHTML), "新接入请使用 sourceProtocol") {
|
||||
t.Error("HTML must not advertise sourceProtocol as realtime field")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user