From da28f531cf1bdd47eeebc8772824dc4de87e74ba Mon Sep 17 00:00:00 2001 From: Guilhem CARRON <gcarron@grandlyon.com> Date: Thu, 6 Oct 2022 13:40:54 +0000 Subject: [PATCH] fix: prevent unavailable backoffice to crash the app --- src/models/initialisationSteps.model.ts | 1 - src/services/customPopup.service.test.ts | 5 +++-- src/services/customPopup.service.ts | 9 ++++++--- src/services/initialization.service.ts | 8 ++++---- src/services/partnersInfo.service.spec.ts | 5 +++-- src/services/partnersInfo.service.ts | 8 ++++++-- 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/models/initialisationSteps.model.ts b/src/models/initialisationSteps.model.ts index f8584e812..8f2516a38 100644 --- a/src/models/initialisationSteps.model.ts +++ b/src/models/initialisationSteps.model.ts @@ -15,7 +15,6 @@ export enum InitStepsErrors { ECOGESTURE_ERROR = 'ecogesture_error', CHALLENGES_ERROR = 'challenges_error', ANALYSIS_ERROR = 'analysis_error', - PRICES_ERROR = 'prices_error', CONSOS_ERROR = 'consos_error', PARTNERS_ERROR = 'partners_error', NETWORK_ERROR = 'network_error', diff --git a/src/services/customPopup.service.test.ts b/src/services/customPopup.service.test.ts index 1c15f8f3b..7b30e3b92 100644 --- a/src/services/customPopup.service.test.ts +++ b/src/services/customPopup.service.test.ts @@ -21,11 +21,12 @@ describe('PartnersInfo service', () => { it('should return an error', async () => { mockClient.getStackClient().fetchJSON.mockRejectedValue(new Error()) + let res try { - await customPupopService.getCustomPopup() + res = await customPupopService.getCustomPopup() expect(true).toBe(false) } catch (error) { - expect(error).toEqual(new Error('Error while getting customPopup')) + expect(res).toBe(undefined) } }) }) diff --git a/src/services/customPopup.service.ts b/src/services/customPopup.service.ts index ef6fcb497..38e77cba7 100644 --- a/src/services/customPopup.service.ts +++ b/src/services/customPopup.service.ts @@ -1,7 +1,8 @@ import { Client } from 'cozy-client' import { CustomPopup } from 'models/customPopup.model' import EnvironmentService from './environment.service' - +import logger from 'cozy-logger' +const log = logger.namespace('customPupopService') export default class CustomPupopService { private readonly _client: Client constructor(_client: Client) { @@ -24,8 +25,10 @@ export default class CustomPupopService { .fetchJSON('GET', remoteUrl) return result as CustomPopup } catch (error) { - console.error(`getCustomPopup: Failed to get custom popup:${error}`) - throw new Error('Error while getting customPopup') + log( + 'error', + `getCustomPopup: Failed to get custom popup:${JSON.stringify(error)}` + ) } } } diff --git a/src/services/initialization.service.ts b/src/services/initialization.service.ts index e199dff50..288edbc9f 100644 --- a/src/services/initialization.service.ts +++ b/src/services/initialization.service.ts @@ -1,4 +1,4 @@ -import { Client, Q, QueryDefinition } from 'cozy-client' +import { Client } from 'cozy-client' import challengeEntityData from 'db/challengeEntity.json' import duelEntityData from 'db/duelEntity.json' import ecogestureData from 'db/ecogestureData.json' @@ -43,7 +43,8 @@ import FluidPricesService from './fluidsPrices.service' import ProfileEcogestureService from './profileEcogesture.service' import ProfileTypeEntityService from './profileTypeEntity.service' import TermsService from './terms.service' - +import logger from 'cozy-logger' +const cozyLog = logger.namespace('initializationService') export default class InitializationService { private readonly _client: Client private readonly _setinitStep: React.Dispatch<React.SetStateAction<InitSteps>> @@ -240,9 +241,8 @@ export default class InitializationService { log.info('[Initialization] FluidPrices db created successfully') return true } catch (err) { - this._setinitStepError(InitStepsErrors.PRICES_ERROR) - log.error('Initialization error - initFluidPrices: ', err) + cozyLog('error', `Initialization error - initFluidPrices: ${err}`) return false } } diff --git a/src/services/partnersInfo.service.spec.ts b/src/services/partnersInfo.service.spec.ts index ace20739b..ffb46973e 100644 --- a/src/services/partnersInfo.service.spec.ts +++ b/src/services/partnersInfo.service.spec.ts @@ -32,11 +32,12 @@ describe('PartnersInfo service', () => { it('should return an error', async () => { mockClient.getStackClient().fetchJSON.mockRejectedValue(new Error()) + let res try { - await partnersInfoService.getPartnersInfo() + res = await partnersInfoService.getPartnersInfo() expect(true).toBe(false) } catch (error) { - expect(error).toEqual(new Error('Error while getting partnersInfo')) + expect(res).toBe(undefined) } }) }) diff --git a/src/services/partnersInfo.service.ts b/src/services/partnersInfo.service.ts index da6a98738..68ba53641 100644 --- a/src/services/partnersInfo.service.ts +++ b/src/services/partnersInfo.service.ts @@ -1,6 +1,8 @@ import { Client } from 'cozy-client' import { PartnersInfo } from 'models/partnersInfo.model' import EnvironmentService from './environment.service' +import logger from 'cozy-logger' +const log = logger.namespace('partnersInfoService') export default class PartnersInfoService { private readonly _client: Client @@ -24,8 +26,10 @@ export default class PartnersInfoService { .fetchJSON('GET', remoteUrl) return result as PartnersInfo } catch (error) { - console.error(`getPartnersInfo: Failed to get partners info:${error}`) - throw new Error('Error while getting partnersInfo') + log( + 'error', + `getPartnersInfo: Failed to get partners info: ${JSON.stringify(error)}` + ) } } } -- GitLab