From 188d40b8dce46ff3ede28e02e9d43a56c9866e27 Mon Sep 17 00:00:00 2001
From: Bastien Dumont <bdumont@grandlyon.com>
Date: Mon, 25 Mar 2024 16:58:21 +0100
Subject: [PATCH] use values as enum

---
 .../Consumption/FluidButtons/FluidButton.tsx         |  2 +-
 src/components/Konnector/KonnectorViewerCard.tsx     |  7 +++----
 .../Options/ReportOptions/ReportOptions.tsx          |  4 ++--
 src/enums/fluid.enum.ts                              | 12 ++++++------
 src/services/fluid.service.ts                        |  2 +-
 src/store/global/global.slice.ts                     |  4 ++--
 src/utils/utils.spec.ts                              |  2 +-
 tests/__mocks__/fluidStatusData.mock.ts              |  2 +-
 8 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/src/components/Consumption/FluidButtons/FluidButton.tsx b/src/components/Consumption/FluidButtons/FluidButton.tsx
index f68eaa2d1..bd3b8e57c 100644
--- a/src/components/Consumption/FluidButtons/FluidButton.tsx
+++ b/src/components/Consumption/FluidButtons/FluidButton.tsx
@@ -32,7 +32,7 @@ const FluidButton = ({ fluidType, isActive }: FluidButtonProps) => {
       (fluidType !== FluidType.MULTIFLUID &&
         fluidStatus[fluidType].status === FluidState.ERROR) ||
       (fluidType !== FluidType.WATER &&
-        fluidStatus[fluidType].status === FluidState.ERROR_LOGIN_FAILED)
+        fluidStatus[fluidType].status === FluidState.LOGIN_FAILED)
     ) {
       return true
     }
diff --git a/src/components/Konnector/KonnectorViewerCard.tsx b/src/components/Konnector/KonnectorViewerCard.tsx
index 605f86037..527d32ff3 100644
--- a/src/components/Konnector/KonnectorViewerCard.tsx
+++ b/src/components/Konnector/KonnectorViewerCard.tsx
@@ -268,7 +268,7 @@ const KonnectorViewerCard = ({
     // Handle login failed for EGL
     else if (
       (fluidType === FluidType.WATER &&
-        fluidState === FluidState.ERROR_LOGIN_FAILED) ||
+        fluidState === FluidState.LOGIN_FAILED) ||
       (account && currentFluidStatus.status !== FluidState.NOT_CONNECTED)
     ) {
       return (
@@ -342,8 +342,7 @@ const KonnectorViewerCard = ({
     }
 
     if (
-      (status === FluidState.ERROR ||
-        status === FluidState.ERROR_LOGIN_FAILED) &&
+      (status === FluidState.ERROR || status === FluidState.LOGIN_FAILED) &&
       connection.account
     ) {
       return (
@@ -499,7 +498,7 @@ const KonnectorViewerCard = ({
               ['red-border']:
                 !currentFluidStatus.maintenance &&
                 (currentFluidStatus.status === FluidState.ERROR ||
-                  currentFluidStatus.status === FluidState.ERROR_LOGIN_FAILED),
+                  currentFluidStatus.status === FluidState.LOGIN_FAILED),
             }),
           }}
         >
diff --git a/src/components/Options/ReportOptions/ReportOptions.tsx b/src/components/Options/ReportOptions/ReportOptions.tsx
index 50556fd28..276df847b 100644
--- a/src/components/Options/ReportOptions/ReportOptions.tsx
+++ b/src/components/Options/ReportOptions/ReportOptions.tsx
@@ -1,3 +1,4 @@
+import { TextField } from '@material-ui/core'
 import StyledSwitch from 'components/CommonKit/Switch/StyledSwitch'
 import { useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
@@ -9,7 +10,6 @@ import ConsumptionDataManager from 'services/consumption.service'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { updateProfile } from 'store/profile/profile.slice'
 import './reportOptions.scss'
-import { TextField } from '@material-ui/core'
 
 const ReportOptions = () => {
   const { t } = useI18n()
@@ -35,7 +35,7 @@ const ReportOptions = () => {
   const isWaterConnected =
     fluidStatus[FluidType.WATER].status !== FluidState.NOT_CONNECTED &&
     fluidStatus[FluidType.WATER].status !== FluidState.KONNECTOR_NOT_FOUND &&
-    fluidStatus[FluidType.WATER].status !== FluidState.ERROR_LOGIN_FAILED
+    fluidStatus[FluidType.WATER].status !== FluidState.LOGIN_FAILED
 
   const setWaterLimit = (e: React.ChangeEvent<HTMLInputElement>) => {
     if (e.target.value !== null && parseInt(e.target.value) > 0) {
diff --git a/src/enums/fluid.enum.ts b/src/enums/fluid.enum.ts
index 4f6608f2c..e0d99c964 100644
--- a/src/enums/fluid.enum.ts
+++ b/src/enums/fluid.enum.ts
@@ -6,10 +6,10 @@ export enum FluidType {
 }
 
 export enum FluidState {
-  KONNECTOR_NOT_FOUND = 0,
-  NOT_CONNECTED = 1,
-  DONE = 200,
-  ERROR = 300,
-  ERROR_LOGIN_FAILED = 301,
-  CHALLENGE_ASKED = 400,
+  KONNECTOR_NOT_FOUND = 'KONNECTOR_NOT_FOUND',
+  NOT_CONNECTED = 'NOT_CONNECTED',
+  DONE = 'DONE',
+  ERROR = 'ERROR',
+  LOGIN_FAILED = 'LOGIN_FAILED',
+  CHALLENGE_ASKED = 'CHALLENGE_ASKED',
 }
diff --git a/src/services/fluid.service.ts b/src/services/fluid.service.ts
index 08e453191..7a286d154 100644
--- a/src/services/fluid.service.ts
+++ b/src/services/fluid.service.ts
@@ -34,7 +34,7 @@ export default class FluidService {
         return FluidState.DONE
       case 'errored':
         if (state?.last_error === 'LOGIN_FAILED') {
-          return FluidState.ERROR_LOGIN_FAILED
+          return FluidState.LOGIN_FAILED
         }
         if (state?.last_error === 'CHALLENGE_ASKED') {
           return FluidState.CHALLENGE_ASKED
diff --git a/src/store/global/global.slice.ts b/src/store/global/global.slice.ts
index cc6228136..3ef644bdb 100644
--- a/src/store/global/global.slice.ts
+++ b/src/store/global/global.slice.ts
@@ -138,9 +138,9 @@ const getFluidTypesFromStatus = (fluidStatus: FluidStatus[]): FluidType[] => {
     if (
       (fluid.status !== FluidState.KONNECTOR_NOT_FOUND &&
         fluid.status !== FluidState.NOT_CONNECTED &&
-        fluid.status !== FluidState.ERROR_LOGIN_FAILED) ||
+        fluid.status !== FluidState.LOGIN_FAILED) ||
       // Handle Login Error case for oauth konnectors
-      (fluid.status === FluidState.ERROR_LOGIN_FAILED &&
+      (fluid.status === FluidState.LOGIN_FAILED &&
         fluid.fluidType !== FluidType.WATER)
     ) {
       fluidTypes.push(fluid.fluidType)
diff --git a/src/utils/utils.spec.ts b/src/utils/utils.spec.ts
index 3fd5c09ab..00f56faf7 100644
--- a/src/utils/utils.spec.ts
+++ b/src/utils/utils.spec.ts
@@ -125,7 +125,7 @@ describe('utils test', () => {
             fluidType: FluidType.ELECTRICITY,
           },
           { status: FluidState.ERROR, fluidType: FluidType.WATER },
-          { status: FluidState.ERROR_LOGIN_FAILED, fluidType: FluidType.GAS },
+          { status: FluidState.LOGIN_FAILED, fluidType: FluidType.GAS },
         ] as FluidStatus[]
         expect(isKonnectorActive(fluidStatus, FluidType.ELECTRICITY)).toBe(true)
         expect(isKonnectorActive(fluidStatus, FluidType.GAS)).toBe(true)
diff --git a/tests/__mocks__/fluidStatusData.mock.ts b/tests/__mocks__/fluidStatusData.mock.ts
index eb1338c76..43246e76f 100644
--- a/tests/__mocks__/fluidStatusData.mock.ts
+++ b/tests/__mocks__/fluidStatusData.mock.ts
@@ -264,7 +264,7 @@ export const mockExpiredElec: FluidStatus = {
 
 export const mockExpiredGas: FluidStatus = {
   fluidType: FluidType.GAS,
-  status: FluidState.ERROR_LOGIN_FAILED,
+  status: FluidState.LOGIN_FAILED,
   maintenance: false,
   firstDataDate: null,
   lastDataDate: null,
-- 
GitLab