@@ -47,7 +47,21 @@ const DigitalTwin = (props) => {
if (value[1] === 0) {
return keyValueTemplate(value[0], "closed");
} else {
- return keyValueTemplate(value[0], `${value[1]}% open`);
+ const percentOpen = Math.min(value[1], 100);
+ return keyValueTemplate(value[0], `${percentOpen}% open`);
+ }
+ })}
+
+ )}
+ {misc_windows != null && (
+
Sunroof
- {/* {Object.entries(sunroof).map(mapOpenCloseState)} */}
{Object.entries(sunroof).map((value) => {
if (value[1] === 0) {
return keyValueTemplate(value[0], "closed");
diff --git a/src/components/VehicleMap/index.jsx b/src/components/VehicleMap/index.jsx
index ff61861..2069e51 100644
--- a/src/components/VehicleMap/index.jsx
+++ b/src/components/VehicleMap/index.jsx
@@ -185,16 +185,7 @@ const Component = () => {
{carState ? (
From 19ad3791684811c4d0e59faef0a9829becfe93ff Mon Sep 17 00:00:00 2001
From: das31 <31259710+das31@users.noreply.github.com>
Date: Fri, 13 Jan 2023 17:27:01 -0500
Subject: [PATCH 5/9] CEC-1711-fix-digital-twin-ver3 (#259)
---
src/components/DigitalTwin/index.js | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/components/DigitalTwin/index.js b/src/components/DigitalTwin/index.js
index 82b41dd..2ddd5ad 100644
--- a/src/components/DigitalTwin/index.js
+++ b/src/components/DigitalTwin/index.js
@@ -14,7 +14,7 @@ const mapOpenCloseState = (value) =>
const DigitalTwin = (props) => {
const classes = useStyles();
- const { battery, doors, location, trex_version, ip, updated, windows,misc_windows ,sunroof, dbc, door_locks } = props;
+ const { battery, doors, location, trex_version, ip, updated, windows, misc_windows, sunroof, dbc, door_locks } = props;
return (
@@ -35,7 +35,7 @@ const DigitalTwin = (props) => {
if (value[0] === "driver") {
return keyValueTemplate(value[0], value[1] ? "Open" : "Closed");
} else {
- return keyValueTemplate(value[0], value[1] ?"Unlocked" : "Locked" );
+ return keyValueTemplate(value[0], value[1] ? "Unlocked" : "Locked");
}
})}
@@ -73,7 +73,8 @@ const DigitalTwin = (props) => {
if (value[1] === 0) {
return keyValueTemplate(value[0], "closed");
} else {
- return keyValueTemplate(value[0], `${value[1]}% open`);
+ const percentOpen = Math.min(value[1], 100);
+ return keyValueTemplate(value[0], `${percentOpen}% open`);
}
})}
From c5a5839d41d2cf9c55e01f46134e6349840505bd Mon Sep 17 00:00:00 2001
From: John Wu <76966357+jwu-fisker@users.noreply.github.com>
Date: Fri, 13 Jan 2023 15:29:31 -0800
Subject: [PATCH 6/9] CEC-3519 Add car version history (#260)
* CEC-3519 Add car version history
CEC-3455 Delete button is icon and remove column
CEC-3496 Fix Issue delete
* smell
* Remove tab from issues details page
* Fix date format
---
.../App/__snapshots__/App.test.js.snap | 330 ++++++++++--------
src/components/Cars/Status/CarUpdatesTab.jsx | 16 +-
.../Cars/Status/CarUpdatesTab.test.jsx | 7 +-
src/components/Cars/Status/ECUsTab.jsx | 36 ++
src/components/Cars/Status/ECUsTab.test.jsx | 44 +++
.../__snapshots__/CarUpdatesTab.test.jsx.snap | 167 +++------
.../__snapshots__/ECUsTab.test.jsx.snap | 309 ++++++++++++++++
.../Status/__snapshots__/index.test.jsx.snap | 34 +-
src/components/Cars/Status/index.jsx | 6 +
src/components/Contexts/VehicleContext.jsx | 12 +
.../Controls/CarVersionLogTable/index.jsx | 136 ++++++++
.../Controls/IssueSelectionTable/index.jsx | 46 +--
src/components/Issues/Info/Details/index.jsx | 4 +-
src/components/Issues/Info/index.jsx | 71 +---
src/services/__mocks__/vehiclesAPI.js | 21 +-
src/services/vehiclesAPI.js | 15 +-
16 files changed, 889 insertions(+), 365 deletions(-)
create mode 100644 src/components/Cars/Status/ECUsTab.jsx
create mode 100644 src/components/Cars/Status/ECUsTab.test.jsx
create mode 100644 src/components/Cars/Status/__snapshots__/ECUsTab.test.jsx.snap
create mode 100644 src/components/Controls/CarVersionLogTable/index.jsx
diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap
index 3ecf212..fe162bb 100644
--- a/src/components/App/__snapshots__/App.test.js.snap
+++ b/src/components/App/__snapshots__/App.test.js.snap
@@ -1752,115 +1752,64 @@ exports[`App Route /issue-info authenticated 1`] = `
class="makeStyles-paper-0 makeStyles-tableSize-0"
>
+ Issue Details
+
-
- Issue Details
-
-
-
-
-
- ID
-
- :
- FISKER123
-
-
-
- VIN
-
- :
- 1GNGC26RXXJ407648
-
-
-
- Title
-
- :
- sometitle
-
-
-
- Description
-
- :
- 2343242
-
-
-
- timestamp
-
- :
- 2022-12-09T23:16:38.074858Z
-
-

-
-
+
+
+ ID
+
+ :
+ FISKER123
+
+
+
+ VIN
+
+ :
+ 1GNGC26RXXJ407648
+
+
+
+ Title
+
+ :
+ sometitle
+
+
+
+ Description
+
+ :
+ 2343242
+
+
+
+ timestamp
+
+ :
+ 12/9/2022 11:16:38 PM
+
+
@@ -2472,29 +2421,6 @@ exports[`App Route /issues authenticated 1`] = `
-
-
- Description
-
-
- |
sometitle
- |
- 2343242
- |
@@ -2616,11 +2537,6 @@ exports[`App Route /issues authenticated 1`] = `
>
sometitle
|
-
- 2343242
- |
@@ -2639,8 +2555,122 @@ exports[`App Route /issues authenticated 1`] = `
|
@@ -9623,8 +9653,12 @@ exports[`App Route /vehicle-status authenticated 1`] = `
class="MuiTabs-root"
>
+
- Remote Commands
+ ECUs
+
+ Remote Commands
+
+
+
+
diff --git a/src/components/Cars/Status/CarUpdatesTab.jsx b/src/components/Cars/Status/CarUpdatesTab.jsx
index 43aa451..bd5dcda 100644
--- a/src/components/Cars/Status/CarUpdatesTab.jsx
+++ b/src/components/Cars/Status/CarUpdatesTab.jsx
@@ -1,12 +1,12 @@
+import { Typography } from "@material-ui/core";
+import clsx from "clsx";
import React from "react";
import { useParams } from "react-router";
-import clsx from "clsx";
-import { Typography } from "@material-ui/core";
-import CarECUsTable from "../../Controls/CarECUsTable";
-import CarUpdatesTable from "../../Controls/CarUpdatesTable";
-import { VehicleProvider } from "../../Contexts/VehicleContext";
import { useUserContext } from "../../Contexts/UserContext";
+import { VehicleProvider } from "../../Contexts/VehicleContext";
+import CarUpdatesTable from "../../Controls/CarUpdatesTable";
+import CarVersionLogTable from "../../Controls/CarVersionLogTable";
import useStyles from "../../useStyles";
const MainForm = () => {
@@ -22,10 +22,8 @@ const MainForm = () => {
Car Updates
-
- Car ECUs
-
-
+ Version Log
+
);
};
diff --git a/src/components/Cars/Status/CarUpdatesTab.test.jsx b/src/components/Cars/Status/CarUpdatesTab.test.jsx
index 1251721..8846413 100644
--- a/src/components/Cars/Status/CarUpdatesTab.test.jsx
+++ b/src/components/Cars/Status/CarUpdatesTab.test.jsx
@@ -1,6 +1,7 @@
jest.mock("../../Contexts/CANFiltersContext");
jest.mock("../../Contexts/StatusContext");
jest.mock("../../Contexts/UserContext");
+jest.mock("../../../services/vehiclesAPI");
jest.mock("@material-ui/core/utils/unstable_useId", () =>
jest.fn().mockReturnValue("mui-test-id")
);
@@ -8,12 +9,12 @@ jest.mock("@material-ui/core/utils/unstable_useId", () =>
import { render, waitFor } from "@testing-library/react";
import { BrowserRouter } from "react-router-dom";
+import addSnapshotSerializer from "../../../utils/snapshot";
+import { TEST_AUTH_OBJECT_FISKER } from "../../../utils/testing";
import { CANFiltersProvider } from "../../Contexts/CANFiltersContext";
import { StatusProvider } from "../../Contexts/StatusContext";
-import { UserProvider, setToken } from "../../Contexts/UserContext";
-import { TEST_AUTH_OBJECT_FISKER } from "../../../utils/testing";
+import { setToken, UserProvider } from "../../Contexts/UserContext";
import MainForm from "./CarUpdatesTab";
-import addSnapshotSerializer from "../../../utils/snapshot";
const renderCarUpdatesTab = async () => {
const { container } = render(
diff --git a/src/components/Cars/Status/ECUsTab.jsx b/src/components/Cars/Status/ECUsTab.jsx
new file mode 100644
index 0000000..efff526
--- /dev/null
+++ b/src/components/Cars/Status/ECUsTab.jsx
@@ -0,0 +1,36 @@
+import { Typography } from "@material-ui/core";
+import clsx from "clsx";
+import React from "react";
+import { useParams } from "react-router";
+
+import { useUserContext } from "../../Contexts/UserContext";
+import { VehicleProvider } from "../../Contexts/VehicleContext";
+import CarECUsTable from "../../Controls/CarECUsTable";
+import useStyles from "../../useStyles";
+
+const MainForm = () => {
+ const { vin } = useParams();
+ const classes = useStyles();
+ const {
+ token: {
+ idToken: { jwtToken: token },
+ },
+ } = useUserContext();
+
+ return (
+
+
+ Car ECUs
+
+
+
+ );
+};
+
+const CarUpdatesTab = () => (
+
+
+
+);
+
+export default CarUpdatesTab;
diff --git a/src/components/Cars/Status/ECUsTab.test.jsx b/src/components/Cars/Status/ECUsTab.test.jsx
new file mode 100644
index 0000000..edd5720
--- /dev/null
+++ b/src/components/Cars/Status/ECUsTab.test.jsx
@@ -0,0 +1,44 @@
+jest.mock("../../Contexts/CANFiltersContext");
+jest.mock("../../Contexts/StatusContext");
+jest.mock("../../Contexts/UserContext");
+jest.mock("../../../services/vehiclesAPI");
+jest.mock("@material-ui/core/utils/unstable_useId", () =>
+ jest.fn().mockReturnValue("mui-test-id")
+);
+
+import { render, waitFor } from "@testing-library/react";
+import { BrowserRouter } from "react-router-dom";
+
+import addSnapshotSerializer from "../../../utils/snapshot";
+import { TEST_AUTH_OBJECT_FISKER } from "../../../utils/testing";
+import { StatusProvider } from "../../Contexts/StatusContext";
+import { setToken, UserProvider } from "../../Contexts/UserContext";
+import MainForm from "./ECUsTab";
+
+const renderECUsTab = async () => {
+ const { container } = render(
+
+
+
+
+
+
+
+ );
+ await waitFor(() => {
+ /* render */
+ });
+ return container;
+};
+
+describe("ECUsTab", () => {
+ beforeAll(() => {
+ addSnapshotSerializer(expect);
+ });
+
+ it("Render", async () => {
+ setToken(TEST_AUTH_OBJECT_FISKER);
+ const container = await renderECUsTab();
+ expect(container).toMatchSnapshot();
+ });
+});
diff --git a/src/components/Cars/Status/__snapshots__/CarUpdatesTab.test.jsx.snap b/src/components/Cars/Status/__snapshots__/CarUpdatesTab.test.jsx.snap
index d4fb153..d3e7afe 100644
--- a/src/components/Cars/Status/__snapshots__/CarUpdatesTab.test.jsx.snap
+++ b/src/components/Cars/Status/__snapshots__/CarUpdatesTab.test.jsx.snap
@@ -173,7 +173,7 @@ exports[`CarUpdatesTab Render 1`] = `
- Car ECUs
+ Version Log
+
+
+ Type
+
+
+ |
+
+
+ Version
+
+
+ |
- ECU
+ Date
@@ -216,121 +262,6 @@ exports[`CarUpdatesTab Render 1`] = `
|
-
-
- SW Version
-
-
- |
-
-
- HW Version
-
-
- |
-
-
- Config
-
-
- |
-
-
- Created
-
-
- |
-
-
- Updated
-
-
- |