From a5f32151b276b86fcfdb1f06ecb96431b8ef2a0a Mon Sep 17 00:00:00 2001
From: Alexander Andrews
<45926661+alexander-e-andrews@users.noreply.github.com>
Date: Mon, 12 Jun 2023 17:54:32 -0400
Subject: [PATCH] CEC-4541: Force Config push (#355)
---
.../App/__snapshots__/App.test.js.snap | 37 +++++++++++++++++++
.../Details/__snapshots__/index.test.jsx.snap | 37 +++++++++++++++++++
src/components/Cars/Status/Details/index.jsx | 18 ++++++++-
.../__snapshots__/DetailsTab.test.jsx.snap | 37 +++++++++++++++++++
.../Status/__snapshots__/index.test.jsx.snap | 37 +++++++++++++++++++
src/components/Contexts/VehicleContext.jsx | 4 +-
src/services/vehiclesAPI.js | 4 +-
7 files changed, 168 insertions(+), 6 deletions(-)
diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap
index bb550f6..b23802c 100644
--- a/src/components/App/__snapshots__/App.test.js.snap
+++ b/src/components/App/__snapshots__/App.test.js.snap
@@ -11428,6 +11428,43 @@ exports[`App Route /vehicle-status authenticated 1`] = `
/>
+
+
{
const [redirect, setRedirect] = useState(null);
const [showDeleteModal, setShowDeleteModal] = useState(false);
const [showUploadConfigModal, setShowUploadConfigModal] = useState(false);
+ const [forced, setForced] = useState(false);
const {
token: {
idToken: { jwtToken: token },
@@ -37,6 +38,10 @@ const MainForm = ({ vin }) => {
const showDebugMask = (process.env.REACT_APP_ENABLE_DEBUGMASK === "1");
+ const onForcedChange = (event) => {
+ setForced(event.target.checked);
+ }
+
useEffect(() => {
(async () => {
try {
@@ -63,7 +68,7 @@ const MainForm = ({ vin }) => {
const onUploadConfig = async () => {
try {
- await uploadConfig(vin, token);
+ await uploadConfig(vin, forced, token);
setMessage(`Config Uploaded ${vin}`);
} catch (e) {
setMessage(e.message);
@@ -159,6 +164,15 @@ const MainForm = ({ vin }) => {
providers={providers}
rolesPerProvider={Permissions.FiskerCreate}
>
+
+ }
+ />
setShowUploadConfigModal(true)}>
diff --git a/src/components/Cars/Status/__snapshots__/DetailsTab.test.jsx.snap b/src/components/Cars/Status/__snapshots__/DetailsTab.test.jsx.snap
index 7b0a25e..46d8008 100644
--- a/src/components/Cars/Status/__snapshots__/DetailsTab.test.jsx.snap
+++ b/src/components/Cars/Status/__snapshots__/DetailsTab.test.jsx.snap
@@ -176,6 +176,43 @@ exports[`DetailsTab Render 1`] = `
/>
+
+
{
}
};
- const uploadConfig = async (vin, token) => {
+ const uploadConfig = async (vin, forced, token) => {
try {
setBusy(true);
validateVIN(vin);
- const result = await api.updateConfig(vin, token);
+ const result = await api.updateConfig(vin, forced, token);
if (result.error)
throw new Error(`Update vehicle error. ${result.message}`);
return result;
diff --git a/src/services/vehiclesAPI.js b/src/services/vehiclesAPI.js
index a5e7d6e..4f9c359 100644
--- a/src/services/vehiclesAPI.js
+++ b/src/services/vehiclesAPI.js
@@ -173,8 +173,8 @@ const vehiclesAPI = {
.then(fetchRespHandler)
.catch(errorHandler),
- updateConfig: async (vin, token) =>
- fetch(`${API_ENDPOINT}/car_config/${vin}`, {
+ updateConfig: async (vin, forced, token) =>
+ fetch(`${API_ENDPOINT}/car_config/${vin}?forced=${forced}`, {
method: "POST",
headers: Object.assign(
{ "Content-Type": "application/json" },