Fixed Bug in Status Overview
This commit is contained in:
@@ -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">
|
||||||
|
|||||||
@@ -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");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user