fix(platform): align vehicle detail service statuses
This commit is contained in:
@@ -259,6 +259,15 @@ func TestHandlerVehicleServiceIncludesVehicleLevelStatus(t *testing.T) {
|
|||||||
if body.Data.ServiceStatus.OnlineSourceCount != 1 || body.Data.ServiceStatus.SourceCount != 3 {
|
if body.Data.ServiceStatus.OnlineSourceCount != 1 || body.Data.ServiceStatus.SourceCount != 3 {
|
||||||
t.Fatalf("vehicle service should expose source counts, got %+v body=%s", body.Data.ServiceStatus, rec.Body.String())
|
t.Fatalf("vehicle service should expose source counts, got %+v body=%s", body.Data.ServiceStatus, rec.Body.String())
|
||||||
}
|
}
|
||||||
|
if body.Data.Resolution == nil || body.Data.Resolution.ServiceStatus == nil || body.Data.Resolution.ServiceStatus.Title != body.Data.ServiceStatus.Title {
|
||||||
|
t.Fatalf("resolution should reuse canonical vehicle service status, resolution=%+v service=%+v", body.Data.Resolution, body.Data.ServiceStatus)
|
||||||
|
}
|
||||||
|
if body.Data.Identity == nil || body.Data.Identity.ServiceStatus == nil || body.Data.Identity.ServiceStatus.Title != body.Data.ServiceStatus.Title {
|
||||||
|
t.Fatalf("identity should reuse canonical vehicle service status, identity=%+v service=%+v", body.Data.Identity, body.Data.ServiceStatus)
|
||||||
|
}
|
||||||
|
if body.Data.RealtimeSummary == nil || body.Data.RealtimeSummary.ServiceStatus == nil || body.Data.RealtimeSummary.ServiceStatus.Title != body.Data.ServiceStatus.Title {
|
||||||
|
t.Fatalf("realtime summary should reuse canonical vehicle service status, summary=%+v service=%+v", body.Data.RealtimeSummary, body.Data.ServiceStatus)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestHandlerVehicleServiceIncludesUnifiedOverview(t *testing.T) {
|
func TestHandlerVehicleServiceIncludesUnifiedOverview(t *testing.T) {
|
||||||
|
|||||||
@@ -291,6 +291,16 @@ func (s *Service) VehicleDetail(ctx context.Context, vin string, protocol string
|
|||||||
sourceStatus := vehicleSourceStatus(vehicles.Items, realtime.Items, history.Items, raw.Items, mileage.Items)
|
sourceStatus := vehicleSourceStatus(vehicles.Items, realtime.Items, history.Items, raw.Items, mileage.Items)
|
||||||
sourceStatus = s.enrichVehicleSourceStatus(ctx, queryVIN, sourceStatus)
|
sourceStatus = s.enrichVehicleSourceStatus(ctx, queryVIN, sourceStatus)
|
||||||
sourceStatus = completeVehicleSourceStatus(sourceStatus, protocol)
|
sourceStatus = completeVehicleSourceStatus(sourceStatus, protocol)
|
||||||
|
serviceStatus := buildVehicleServiceStatus(true, sourceStatus)
|
||||||
|
resolution.ServiceStatus = serviceStatus
|
||||||
|
if identity != nil {
|
||||||
|
identity.ServiceStatus = serviceStatus
|
||||||
|
}
|
||||||
|
if summary != nil {
|
||||||
|
summary.ServiceStatus = serviceStatus
|
||||||
|
}
|
||||||
|
serviceOverview := buildVehicleServiceOverview(resolvedVIN, keyword, &resolution, identity, summary, sourceStatus, history, raw, mileage, quality)
|
||||||
|
serviceOverview.ServiceStatus = serviceStatus
|
||||||
return VehicleDetail{
|
return VehicleDetail{
|
||||||
VIN: resolvedVIN,
|
VIN: resolvedVIN,
|
||||||
LookupKey: keyword,
|
LookupKey: keyword,
|
||||||
@@ -298,8 +308,8 @@ func (s *Service) VehicleDetail(ctx context.Context, vin string, protocol string
|
|||||||
Resolution: &resolution,
|
Resolution: &resolution,
|
||||||
Identity: identity,
|
Identity: identity,
|
||||||
RealtimeSummary: summary,
|
RealtimeSummary: summary,
|
||||||
ServiceStatus: buildVehicleServiceStatus(true, sourceStatus),
|
ServiceStatus: serviceStatus,
|
||||||
ServiceOverview: buildVehicleServiceOverview(resolvedVIN, keyword, &resolution, identity, summary, sourceStatus, history, raw, mileage, quality),
|
ServiceOverview: serviceOverview,
|
||||||
SourceConsistency: buildVehicleSourceConsistency(sourceStatus, realtime.Items, protocol),
|
SourceConsistency: buildVehicleSourceConsistency(sourceStatus, realtime.Items, protocol),
|
||||||
Sources: sourceNames(sourceStatus),
|
Sources: sourceNames(sourceStatus),
|
||||||
SourceStatus: sourceStatus,
|
SourceStatus: sourceStatus,
|
||||||
|
|||||||
Reference in New Issue
Block a user