Fixed Bug in Status Overview

This commit is contained in:
Denis Urs Rudolph
2025-12-11 21:10:57 +01:00
parent c1031e3f9a
commit 945df52f0c
2 changed files with 17 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
'use client'; 'use client';
import { getVehicleDisplayStatus } from '@/lib/utils';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { fetchVehicles, getUpdates, fetchGroups, Vehicle, FirmwareUpdate, VehicleGroup } from '@/lib/api'; import { fetchVehicles, getUpdates, fetchGroups, Vehicle, FirmwareUpdate, VehicleGroup } from '@/lib/api';
import { VehicleList } from '@/components/VehicleList'; import { VehicleList } from '@/components/VehicleList';
@@ -33,8 +34,8 @@ export default function Home() {
return () => clearInterval(interval); return () => clearInterval(interval);
}, []); }, []);
const onlineCount = vehicles.filter(v => v.status === 'Online').length; const onlineCount = vehicles.filter(v => getVehicleDisplayStatus(v) === 'Online').length;
const updatingCount = vehicles.filter(v => v.status === 'Updating').length; const updatingCount = vehicles.filter(v => getVehicleDisplayStatus(v) === 'Updating').length;
return ( return (
<main className="min-h-screen bg-black text-zinc-100 selection:bg-indigo-500/30"> <main className="min-h-screen bg-black text-zinc-100 selection:bg-indigo-500/30">

View File

@@ -59,4 +59,18 @@ describe("getVehicleDisplayStatus", () => {
}; };
expect(getVehicleDisplayStatus(vehicle)).toBe("Updating"); expect(getVehicleDisplayStatus(vehicle)).toBe("Updating");
}); });
it("should handle microsecond precision timestamps", () => {
// Backend sends 6 digit precision e.g. .991694
// 2024-01-01T12:00:04.991694 -> 6s ago
const vehicle: Vehicle = {
vin: "TEST",
status: "Online",
currentVersion: "1.0",
lastHeartbeat: "2024-01-01T12:00:04.991694",
groupId: null
};
// If it parses correctly, diff is ~6s > 5s -> Offline
expect(getVehicleDisplayStatus(vehicle)).toBe("Offline");
});
}); });