From f4d021b65845308cd9e8433728b366bc02513aab Mon Sep 17 00:00:00 2001 From: Tristan Timblin Date: Thu, 17 Aug 2023 14:08:57 -0700 Subject: [PATCH] CEC-4883: update api shape and display trex version on fleets (#418) --- src/components/Contexts/FleetContext.jsx | 12 ++++---- src/components/Contexts/FleetContext.test.jsx | 6 ++-- .../Contexts/__mocks__/FleetContext.jsx | 9 ++++-- .../Table/__snapshots__/index.test.jsx.snap | 23 ++++++++++++++ .../Fleets/Status/Vehicles/Table/index.jsx | 7 ++++- .../__snapshots__/VehiclesTab.test.jsx.snap | 23 ++++++++++++++ src/services/__mocks__/fleetsAPI.js | 30 +++++++++++++++++-- 7 files changed, 96 insertions(+), 14 deletions(-) diff --git a/src/components/Contexts/FleetContext.jsx b/src/components/Contexts/FleetContext.jsx index 70d58b4..e8b329e 100644 --- a/src/components/Contexts/FleetContext.jsx +++ b/src/components/Contexts/FleetContext.jsx @@ -113,18 +113,20 @@ export const FleetProvider = ({ children }) => { throw new Error(`Get fleet vehicles error. ${result.message}`); } - const connectionsResult = await vehiclesAPI.getConnections({ "VINs": result.data }, token) + const vins = result.data.map(vehicle => vehicle.vin); + const connectionsResult = await vehiclesAPI.getConnections({ "VINs": vins }, token) if (result.error) { setFleetVehicles([]) throw new Error(`Get vehicles connections error. ${result.message}`); } var cars = [] - result.data.forEach((vin) => { + result.data.forEach((vehicle) => { cars.push({ - vin: vin, - connected: connectionsResult[vin] || false, - connectedHMI: connectionsResult[`2:${vin}`] || false + vin: vehicle.vin, + connected: connectionsResult[vehicle.vin] || false, + connectedHMI: connectionsResult[`2:${vehicle.vin}`] || false, + trex_version: vehicle.carstate?.trex_version || "", }) }) diff --git a/src/components/Contexts/FleetContext.test.jsx b/src/components/Contexts/FleetContext.test.jsx index b3b883d..c6384dd 100644 --- a/src/components/Contexts/FleetContext.test.jsx +++ b/src/components/Contexts/FleetContext.test.jsx @@ -347,8 +347,7 @@ describe("FleetContext", () => { describe("getFleetVehicles", () => { beforeEach(() => { const TestComp = () => { - const { busy, error, fleetVehicles, getFleetVehicles } = - useFleetContext(); + const { busy, error, fleetVehicles, getFleetVehicles } = useFleetContext(); return ( <> @@ -805,16 +804,19 @@ const expectedFleetVehiclesData = [ vin: "USWESTVIN12345678", connected: true, connectedHMI: false, + trex_version: "", }, { vin: "USWESTVIN12345679", connected: true, connectedHMI: false, + trex_version: "", }, { vin: "USWESTVIN12345670", connected: true, connectedHMI: false, + trex_version: "", }, ]; diff --git a/src/components/Contexts/__mocks__/FleetContext.jsx b/src/components/Contexts/__mocks__/FleetContext.jsx index 6b081c2..2c825a8 100644 --- a/src/components/Contexts/__mocks__/FleetContext.jsx +++ b/src/components/Contexts/__mocks__/FleetContext.jsx @@ -67,17 +67,20 @@ export const useFleetContext = () => ({ { vin: "USWESTVIN12345678", connected: false, - connectedHMI: false + connectedHMI: false, + trex_version: "", }, { vin: "USWESTVIN12345679", connected: true, - connectedHMI: true + connectedHMI: true, + trex_version: "", }, { vin: "USWESTVIN12345670", connected: false, - connectedHMI: false + connectedHMI: false, + trex_version: "", }, ]; return Promise.resolve(result); diff --git a/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap b/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap index 2c81f3a..016d927 100644 --- a/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap +++ b/src/components/Fleets/Status/Vehicles/Table/__snapshots__/index.test.jsx.snap @@ -127,6 +127,29 @@ exports[`FleetVehiclesTable Render 1`] = ` + + + T.REX Version + + + { } {car.vin} - {Actions(car.vin)} + {car.trex_version} + {Actions(car.vin)} ) ))} diff --git a/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap b/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap index 220b263..d84d351 100644 --- a/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap +++ b/src/components/Fleets/Status/__snapshots__/VehiclesTab.test.jsx.snap @@ -126,6 +126,29 @@ exports[`VehiclesTab Render 1`] = ` + + + T.REX Version + + + { @@ -63,11 +82,16 @@ const fleetsAPI = { return { data: vehicles }; }, addFleetVehicles: async (_name, payload) => { - payload.vins && vehicles.push(...payload.vins); + payload.vins && vehicles.push(...payload.vins.map((vin => ({ + vin, + connected: false, + connectedHMI: false, + trex_version: "", + })))); return payload; }, deleteFleetVehicle: async (_name, vehicle) => { - const index = vehicles.findIndex(element => element === vehicle.vin); + const index = vehicles.findIndex(element => element.vin === vehicle.vin); if (index >= 0) vehicles.splice(index, 1); return vehicle.vin; },