From 787bb122608cd53834666c6fa1adc688eefd87ec Mon Sep 17 00:00:00 2001 From: Paul Adamsen <117673433+pauladamseniii@users.noreply.github.com> Date: Mon, 26 Jun 2023 11:55:38 -0400 Subject: [PATCH] CEC-4595 - show online status of cars in fleet (#374) * CEC-4595 - show online status of cars in fleet * fix mocking --- src/components/Contexts/FleetContext.jsx | 18 +++++- src/components/Contexts/FleetContext.test.jsx | 19 ++++++- .../Contexts/__mocks__/FleetContext.jsx | 21 ++++++- .../Contexts/__mocks__/VehicleContext.jsx | 12 ++-- .../Table/__snapshots__/index.test.jsx.snap | 57 +------------------ .../Fleets/Status/Vehicles/Table/index.jsx | 20 +++++-- .../__snapshots__/VehiclesTab.test.jsx.snap | 57 +------------------ src/services/__mocks__/vehiclesAPI.js | 1 + 8 files changed, 79 insertions(+), 126 deletions(-) diff --git a/src/components/Contexts/FleetContext.jsx b/src/components/Contexts/FleetContext.jsx index dd62c6d..551a762 100644 --- a/src/components/Contexts/FleetContext.jsx +++ b/src/components/Contexts/FleetContext.jsx @@ -1,5 +1,6 @@ import React, { useContext, useState } from "react"; import api from "../../services/fleetsAPI"; +import vehiclesAPI from "../../services/vehiclesAPI"; import { validateCANID, validateFilter, validateVIN } from "../../utils/validationSupplier"; const FleetContext = React.createContext(); @@ -112,7 +113,22 @@ export const FleetProvider = ({ children }) => { throw new Error(`Get fleet vehicles error. ${result.message}`); } - setFleetVehicles(result.data) + const connectionsResult = await vehiclesAPI.getConnections(result.data, token) + if (result.error) { + setFleetVehicles([]) + throw new Error(`Get vehicles connections error. ${result.message}`); + } + + var cars = [] + result.data.forEach((vin) => { + cars.push({ + vin: vin, + connected: connectionsResult[vin] || false, + connectedHMI: connectionsResult[`2:${vin}`] || false + }) + }) + + setFleetVehicles(cars) if (result.total) { setTotalFleetVehicles(result.total); } diff --git a/src/components/Contexts/FleetContext.test.jsx b/src/components/Contexts/FleetContext.test.jsx index 93b88a1..b3b883d 100644 --- a/src/components/Contexts/FleetContext.test.jsx +++ b/src/components/Contexts/FleetContext.test.jsx @@ -1,4 +1,5 @@ jest.mock("../../services/fleetsAPI"); +jest.mock("../../services/vehiclesAPI"); import { render, @@ -800,9 +801,21 @@ const expectedFleetsData = [ ]; const expectedFleetVehiclesData = [ - "USWESTVIN12345678", - "USWESTVIN12345679", - "USWESTVIN12345670", + { + vin: "USWESTVIN12345678", + connected: true, + connectedHMI: false, + }, + { + vin: "USWESTVIN12345679", + connected: true, + connectedHMI: false, + }, + { + vin: "USWESTVIN12345670", + connected: true, + connectedHMI: false, + }, ]; const expectedFleetCANFiltersData = [ diff --git a/src/components/Contexts/__mocks__/FleetContext.jsx b/src/components/Contexts/__mocks__/FleetContext.jsx index 7c9c613..6b081c2 100644 --- a/src/components/Contexts/__mocks__/FleetContext.jsx +++ b/src/components/Contexts/__mocks__/FleetContext.jsx @@ -62,7 +62,26 @@ export const useFleetContext = () => ({ fleetVehicles, totalFleetVehicles, - getFleetVehicles: jest.fn(), + getFleetVehicles: jest.fn().mockImplementation((name, search, _token) => { + const result = [ + { + vin: "USWESTVIN12345678", + connected: false, + connectedHMI: false + }, + { + vin: "USWESTVIN12345679", + connected: true, + connectedHMI: true + }, + { + vin: "USWESTVIN12345670", + connected: false, + connectedHMI: false + }, + ]; + return Promise.resolve(result); + }), addFleetVehicles: jest.fn(), deleteFleetVehicle: jest.fn(), diff --git a/src/components/Contexts/__mocks__/VehicleContext.jsx b/src/components/Contexts/__mocks__/VehicleContext.jsx index 18cc9b0..52bd9fb 100644 --- a/src/components/Contexts/__mocks__/VehicleContext.jsx +++ b/src/components/Contexts/__mocks__/VehicleContext.jsx @@ -112,10 +112,14 @@ export const useVehicleContext = () => ({ addVehicle: jest.fn(), getConnections: jest .fn().mockImplementation((vins, _token) => { - const result = {}; - vins.forEach((vin) => { - result[vin] = true; - }); + const result = { + "USWESTVIN12345678": true, + "2:USWESTVIN12345678": false, + "USWESTVIN12345679": true, + "2:USWESTVIN12345679": false, + "USWESTVIN12345670": true, + "2:USWESTVIN12345670": false, + }; return Promise.resolve(result); }), getECUs: jest.fn(() => { 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 9cad130..2c81f3a 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 @@ -137,62 +137,7 @@ exports[`FleetVehiclesTable Render 1`] = `
-