diff --git a/src/components/Contexts/CarUpdatesContext.jsx b/src/components/Contexts/CarUpdatesContext.jsx index 1ec447b..3e37bd8 100644 --- a/src/components/Contexts/CarUpdatesContext.jsx +++ b/src/components/Contexts/CarUpdatesContext.jsx @@ -76,10 +76,11 @@ export const CarUpdatesProvider = ({ children }) => { result = await api.getCarUpdates(search, token); if (result.error) throw new Error(`Get car updates error. ${result.message}`); - result.data.forEach((item) => { - item.progress = 0; + result.data.forEach((item, i) => { item.msg = item.status; - applyProgressStatus(item, item); + item.progress = 0; + applyProgressStatus(item); + result.data[i] = Object.assign(result.data[i], item); }); setCarUpdates(result.data); if (search && search.offset === 0 && result.total) { @@ -119,28 +120,27 @@ export const CarUpdatesProvider = ({ children }) => { return 0; }; - const applyProgressStatus = (item, status) => { - if (validateStatusMessage(status)) { - if (status.msg === "downloading") { - item.progress = getDownloadProgress(status); + const applyProgressStatus = (item) => { + if (validateStatusMessage(item)) { + if (item.msg === "downloading") { + item.progress = getDownloadProgress(item); item.status = `${item.ecu || ""} downloading ${item.progress}%`.trim(); return; - } else if (status.msg === "package_download_complete") { + } else if (item.msg === "package_download_complete") { item.progress = 100; - item.status = "download complete"; + item.status = `${item.ecu || ""} download complete`.trim(); return; - } else if (status.msg === "installing") { - item.progress = getInstallProgress(status); + } else if (item.msg === "installing") { + item.progress = getInstallProgress(item); item.status = `${item.ecu || ""} installing ${item.progress}%`.trim(); return; - } else if (status.msg === "package_install_complete") { + } else if (item.msg === "package_install_complete") { item.progress = 100; - item.status = "install complete"; + item.status = `${item.ecu || ""} install complete`.trim(); return; } } delete item.progress; - item.status = status.msg; }; const applyProgressStatuses = (statuses) => { diff --git a/src/components/Contexts/VehicleContext.jsx b/src/components/Contexts/VehicleContext.jsx index 82d9c2f..657dbec 100644 --- a/src/components/Contexts/VehicleContext.jsx +++ b/src/components/Contexts/VehicleContext.jsx @@ -45,6 +45,7 @@ export const VehicleProvider = ({ children }) => { } cars.forEach((car) => { car.connected = result[car.vin] || false; + car.connectedHMI = result[`2:${car.vin}`] || false; }); } catch (e) { logger.error(e.stack); diff --git a/src/components/Contexts/VehicleContext.test.jsx b/src/components/Contexts/VehicleContext.test.jsx index b97cf25..cda9d11 100644 --- a/src/components/Contexts/VehicleContext.test.jsx +++ b/src/components/Contexts/VehicleContext.test.jsx @@ -13,7 +13,7 @@ import { StatusProvider, useStatusContext } from "./StatusContext"; const checkVehicleResult = (error, busy, vehicle) => { checkBaseResults(error, busy); expect(screen.getByTestId("vehicle").innerHTML).toEqual(vehicle); -} +}; const checkVehiclesResult = (error, busy, vehicles) => { checkBaseResults(error, busy); @@ -195,12 +195,22 @@ describe("VehicleContext", () => { <>
{message}
{busy.toString()}
-