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" },