From 898f56c7c9a82259a006c4b46999296bcc82262d Mon Sep 17 00:00:00 2001 From: Bastien DUMONT <bdumont@grandlyon.com> Date: Thu, 11 Apr 2024 15:03:30 +0000 Subject: [PATCH] chore: reduce sonar smell --- .gitlab/merge_request_templates/default.md | 26 +++++-- .../Analysis/Comparison/Comparison.tsx | 1 - .../ProfileComparator.spec.tsx | 3 +- .../ProfileComparatorRow.tsx | 2 +- .../Connection/EPGLConnect/EpglForm.tsx | 7 +- .../Connection/SGEConnect/SgeConnectView.tsx | 17 ++--- .../Consumption/ConsumptionView.spec.tsx | 76 ++++++++++++++----- .../InfoDataConsumptionVisualizer.tsx | 21 +---- src/components/FluidChart/FluidChart.tsx | 27 ++----- src/components/Hooks/useMoveToDate.tsx | 22 ++++++ .../ExportData/Modals/exportLoadingModal.tsx | 5 +- .../PartnerIssue/PartnerIssueModal.tsx | 2 +- .../PartnerIssueModal.spec.tsx.snap | 2 +- .../ProfileTypeFormNumber.tsx | 2 +- src/locales/fr.json | 1 + src/services/account.service.ts | 15 +--- src/services/queryRunner.service.spec.ts | 66 ++++++++-------- tests/__mocks__/fluidStatusData.mock.ts | 2 +- tests/__mocks__/profileData.mock.ts | 49 ------------ 19 files changed, 158 insertions(+), 188 deletions(-) create mode 100644 src/components/Hooks/useMoveToDate.tsx delete mode 100644 tests/__mocks__/profileData.mock.ts diff --git a/.gitlab/merge_request_templates/default.md b/.gitlab/merge_request_templates/default.md index 8b164c75d..9ea6fd832 100644 --- a/.gitlab/merge_request_templates/default.md +++ b/.gitlab/merge_request_templates/default.md @@ -1,9 +1,9 @@ # Related to #000 | :triangular_flag_on_post: Give your MR title the same name that the desired squash commit. In doubt, check the conventional commit [doc][conventional-commits]. examples | -| --- | -| **feat(profile)**: add... | -| **fix(annuaire)**: remove... | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **feat(profile)**: add... | +| **fix(annuaire)**: remove... | ## What does this MR do and why? @@ -28,7 +28,18 @@ More reading on checklists can be found in the "Checklist Manifesto": http://atu "It is common to misconceive how checklists function in complex lines of work. They are not comprehensive how-to guides, whether for building a skyscraper or getting a plane out of trouble. They are quick and simple tools aimed to buttress the skills of expert professionals." - Gawande, Atul. The Checklist Manifesto ---> -### Quality [](https://sonarqube.forge.grandlyon.com/dashboard?id=ecolyo-mr) - [](https://sonarqube.forge.grandlyon.com/dashboard?id=ecolyo-mr) +### Quality + +#### Bugs & smells summary + +_🔠Re-run Quality job to update_ + +| Current MR | Dev | +| ----------------------------------------- | ------------------------------------------- | +| [![Bugs][bugs_mr]][dashboard_mr] | [![Bugs][bugs_dev]][dashboard_dev] | +| [![Code Smells][smells_mr]][dashboard_mr] | [![Code Smells][smells_dev]][dashboard_dev] | + +#### Quality checklist - For the code that this change impacts, I believe that the **automated tests validate functionality** that is **highly important to users**. If the existing automated tests do not cover this functionality, I have **added the necessary additional tests** or I have added an issue to describe the automation testing gap and linked it to this MR. - I have made sure that the **sonar quality coverage is up to standards**. @@ -55,4 +66,9 @@ More reading on checklists can be found in the "Checklist Manifesto": http://atu - When featured on a self-data project release, I have made sure my **app version** in the manifest and package.json is **incremented** and any relative **changes to the permissions are clearly written and transmitted to Cozy**. [conventional-commits]: https://www.conventionalcommits.org/en/v1.0.0/ - +[bugs_mr]: https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=ecolyo-mr&metric=bugs&token=3d678f5d0b1736ae2a81986f8bf3bcb32672231c +[bugs_dev]: https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=ecolyo&metric=bugs&token=95187318baacb2c9aeab7c8f3046b4b66f08e9b1 +[smells_mr]: https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=ecolyo-mr&metric=code_smells&token=3d678f5d0b1736ae2a81986f8bf3bcb32672231c +[smells_dev]: https://sonarqube.forge.grandlyon.com/api/project_badges/measure?project=ecolyo&metric=code_smells&token=95187318baacb2c9aeab7c8f3046b4b66f08e9b1 +[dashboard_mr]: https://sonarqube.forge.grandlyon.com/dashboard?id=ecolyo-mr +[dashboard_dev]: https://sonarqube.forge.grandlyon.com/dashboard?id=ecolyo diff --git a/src/components/Analysis/Comparison/Comparison.tsx b/src/components/Analysis/Comparison/Comparison.tsx index 1e2a29a53..c14165379 100644 --- a/src/components/Analysis/Comparison/Comparison.tsx +++ b/src/components/Analysis/Comparison/Comparison.tsx @@ -26,7 +26,6 @@ const Comparison = ({ const { global: { fluidTypes }, analysis: { period, analysisMonth }, - chart: { showCompare }, } = useAppSelector(state => state.ecolyo) const dispatch = useAppDispatch() const [yearPerformanceIndicators, setYearPerformanceIndicators] = useState< diff --git a/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx b/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx index 20b645a30..b18f88859 100644 --- a/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx +++ b/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx @@ -2,7 +2,6 @@ import { render, screen, waitFor } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' import React from 'react' import { Provider } from 'react-redux' -import { profileData } from 'tests/__mocks__/profileData.mock' import { createMockEcolyoStore, mockAnalysisState, @@ -34,7 +33,7 @@ jest.mock( () => 'mock-profileComparatorRow' ) -const profileCompleted = { ...profileData, isProfileTypeCompleted: true } +const profileCompleted = { ...mockProfileState, isProfileTypeCompleted: true } const storeProfileCompleted = createMockEcolyoStore({ profile: profileCompleted, analysis: mockAnalysisState, diff --git a/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx b/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx index 6ca531524..5d9fcb185 100644 --- a/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx +++ b/src/components/Analysis/ProfileComparator/ProfileComparatorRow.tsx @@ -71,7 +71,7 @@ const ProfileComparatorRow = ({ } else { // keeps unit in kWh for electricity and gas if (isElecOrGas) { - return `${Math.round(fluidLoad)} ${t(`FLUID.${FLUIDNAME}.UNIT`)}` + return `${Math.round(fluidLoad)} ${t('FLUID.' + FLUIDNAME + '.UNIT')}` } return (performanceValue && performanceValue >= 1000) || fluidLoad >= 1000 ? formatNumberValues(fluidLoad / 1000).toString() + diff --git a/src/components/Connection/EPGLConnect/EpglForm.tsx b/src/components/Connection/EPGLConnect/EpglForm.tsx index 0ae8fc6a3..14ba3dd2c 100644 --- a/src/components/Connection/EPGLConnect/EpglForm.tsx +++ b/src/components/Connection/EPGLConnect/EpglForm.tsx @@ -34,10 +34,9 @@ const EpglForm = ({ hasCreatedAccount }: { hasCreatedAccount: boolean }) => { }) const changeLogin = (value: string) => { - if ((/\d/.test(value) && value.length <= 7) || value === '') { - setError('') - setLogin(value) - } + if (value.toString().length > 7) return + setError('') + setLogin(value) } const changePassword = (value: string) => { diff --git a/src/components/Connection/SGEConnect/SgeConnectView.tsx b/src/components/Connection/SGEConnect/SgeConnectView.tsx index 6c82063d9..2b8a84e08 100644 --- a/src/components/Connection/SGEConnect/SgeConnectView.tsx +++ b/src/components/Connection/SGEConnect/SgeConnectView.tsx @@ -124,18 +124,13 @@ const SgeConnectView = () => { value: string | boolean | number, maxLength?: number ) => { - // TODO duplicate with Form login input - if ( - !maxLength || - value === '' || - (/\d/.test(value.toString()) && value.toString().length <= maxLength) - ) { - const updatedState = { - ...currentSgeState, - [key]: value, - } - setCurrentSgeState(updatedState) + if (maxLength && value.toString().length > maxLength) return + + const updatedState = { + ...currentSgeState, + [key]: value, } + setCurrentSgeState(updatedState) }, [currentSgeState] ) diff --git a/src/components/Consumption/ConsumptionView.spec.tsx b/src/components/Consumption/ConsumptionView.spec.tsx index 722bc1e09..96f96183d 100644 --- a/src/components/Consumption/ConsumptionView.spec.tsx +++ b/src/components/Consumption/ConsumptionView.spec.tsx @@ -168,28 +168,62 @@ describe('ConsumptionView component', () => { ).toBeInTheDocument() }) - // todo describe and add multiple fluids ? - it('should render partner issue Modal', async () => { - const updatedStatus = mockInitialEcolyoState.global.fluidStatus - updatedStatus[0] = mockExpiredElec - const store = createMockEcolyoStore({ - chart: mockChartStateShowOffline, - global: { - fluidStatus: updatedStatus, - releaseNotes: mockInitialEcolyoState.global.releaseNotes, - }, - modal: { - ...mockModalState, - partnersIssueModal: { enedis: false, grdf: false, egl: true }, - }, + describe('Partner Issue Modal', () => { + it('should render partner issue Modal for electricity', async () => { + const updatedStatus = mockInitialEcolyoState.global.fluidStatus + updatedStatus[0] = { ...updatedStatus[0], maintenance: true } + const store = createMockEcolyoStore({ + chart: mockChartStateShowOffline, + global: { + fluidStatus: updatedStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, + }, + modal: { + ...mockModalState, + partnersIssueModal: { enedis: true, grdf: false, egl: false }, + }, + }) + mockUpdateProfile.mockResolvedValue(mockTestProfile1) + const { container } = render( + <Provider store={store}> + <ConsumptionView fluidType={FluidType.ELECTRICITY} /> + </Provider> + ) + await waitFor(() => null, { container }) + expect( + screen.getByRole('presentation', { + name: 'consumption.partner_issue_modal.accessibility_title', + }) + ).toBeInTheDocument() + }) + + it('should render partner issue Modal for water', async () => { + const updatedStatus = mockInitialEcolyoState.global.fluidStatus + updatedStatus[1] = { ...updatedStatus[1], maintenance: true } + const store = createMockEcolyoStore({ + chart: mockChartStateShowOffline, + global: { + fluidStatus: updatedStatus, + releaseNotes: mockInitialEcolyoState.global.releaseNotes, + }, + modal: { + ...mockModalState, + partnersIssueModal: { enedis: false, grdf: false, egl: true }, + }, + }) + mockUpdateProfile.mockResolvedValue(mockTestProfile1) + const { container } = render( + <Provider store={store}> + <ConsumptionView fluidType={FluidType.WATER} /> + </Provider> + ) + await waitFor(() => null, { container }) + expect( + screen.getByRole('presentation', { + name: 'consumption.partner_issue_modal.accessibility_title', + }) + ).toBeInTheDocument() }) - mockUpdateProfile.mockResolvedValue(mockTestProfile1) - render( - <Provider store={store}> - <ConsumptionView fluidType={FluidType.ELECTRICITY} /> - </Provider> - ) - expect(screen.getByRole('dialog')).toBeInTheDocument() }) it('should show expired modal when a GRDF consent is expired', () => { const updatedStatus = mockInitialEcolyoState.global.fluidStatus diff --git a/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.tsx b/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.tsx index f88a939c5..2c0381eb6 100644 --- a/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.tsx +++ b/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.tsx @@ -1,12 +1,10 @@ import { Button } from '@material-ui/core' +import { useMoveToLatestDate } from 'components/Hooks/useMoveToDate' import { useI18n } from 'cozy-ui/transpiled/react/I18n' import { DataloadState, FluidType } from 'enums' import { DateTime } from 'luxon' import { Dataload } from 'models' import React, { useCallback, useState } from 'react' -import DateChartService from 'services/dateChart.service' -import { setCurrentIndex, setSelectedDate } from 'store/chart/chart.slice' -import { useAppDispatch, useAppSelector } from 'store/hooks' import NoDataModal from './NoDataModal' import './infoDataConsumptionVisualizer.scss' @@ -22,26 +20,13 @@ const InfoDataConsumptionVisualizer = ({ lastDataDate, }: InfoDataConsumptionVisualizerProps) => { const { t } = useI18n() - const dispatch = useAppDispatch() - const { currentTimeStep } = useAppSelector(state => state.ecolyo.chart) const [openNoDataModal, setOpenNoDataModal] = useState<boolean>(false) + const { moveToLatestDate } = useMoveToLatestDate(lastDataDate) const toggleNoDataModal = useCallback(() => { setOpenNoDataModal(prev => !prev) }, []) - const moveToDate = () => { - if (lastDataDate) { - const dateChartService = new DateChartService() - const updatedIndex = dateChartService.defineDateIndex( - currentTimeStep, - lastDataDate - ) - dispatch(setSelectedDate(lastDataDate)) - dispatch(setCurrentIndex(updatedIndex)) - } - } - if (!dataload) { return <></> } @@ -60,7 +45,7 @@ const InfoDataConsumptionVisualizer = ({ ? 'last_valid_data_multi' : 'last_available_data' return ( - <Button className="btnText" onClick={moveToDate}> + <Button className="btnText" onClick={moveToLatestDate}> {t(`consumption_visualizer.${key}`, { date: lastDate, })} diff --git a/src/components/FluidChart/FluidChart.tsx b/src/components/FluidChart/FluidChart.tsx index 2e87f46b2..c03ea3ad2 100644 --- a/src/components/FluidChart/FluidChart.tsx +++ b/src/components/FluidChart/FluidChart.tsx @@ -3,6 +3,7 @@ import LegendComparisonIcon from 'assets/icons/ico/legendComparison.svg' import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import StyledSwitch from 'components/CommonKit/Switch/StyledSwitch' import useExploration from 'components/Hooks/useExploration' +import { useMoveToLatestDate } from 'components/Hooks/useMoveToDate' import { useClient } from 'cozy-client' import { useI18n } from 'cozy-ui/transpiled/react/I18n' import { FluidType, TimeStep, UserExplorationID } from 'enums' @@ -10,13 +11,7 @@ import { DateTime } from 'luxon' import React, { useCallback, useEffect, useState } from 'react' import { useNavigate } from 'react-router-dom' import ConsumptionService from 'services/consumption.service' -import DateChartService from 'services/dateChart.service' -import { - setCurrentIndex, - setSelectedDate, - setShowCompare, - setShowOfflineData, -} from 'store/chart/chart.slice' +import { setShowCompare, setShowOfflineData } from 'store/chart/chart.slice' import { useAppDispatch, useAppSelector } from 'store/hooks' import { getFluidName, getKonnectorSlug, isKonnectorActive } from 'utils/utils' import FluidChartSwipe from './FluidChartSwipe' @@ -37,6 +32,9 @@ const FluidChart = ({ fluidType }: { fluidType: FluidType }) => { const currentFluidStatus = fluidStatus[fluidType] const isFluidConnected = isKonnectorActive(fluidStatus, fluidType) + const { moveToLatestDate } = useMoveToLatestDate( + currentFluidStatus?.lastDataDate + ) const [, setValidExploration] = useExploration() const [containsHalfHourData, setContainsHalfHourData] = useState<boolean>(false) @@ -103,19 +101,6 @@ const FluidChart = ({ fluidType }: { fluidType: FluidType }) => { [lowercaseFluidType, lowercaseTimeStep, t] ) - // TODO if we keep this, use the same existing function - const moveToDate = () => { - if (currentFluidStatus?.lastDataDate) { - const dateChartService = new DateChartService() - const updatedIndex = dateChartService.defineDateIndex( - currentTimeStep, - currentFluidStatus.lastDataDate - ) - dispatch(setSelectedDate(currentFluidStatus.lastDataDate)) - dispatch(setCurrentIndex(updatedIndex)) - } - } - const toggleModalConnection = () => { switch (fluidType) { case FluidType.ELECTRICITY: @@ -132,7 +117,7 @@ const FluidChart = ({ fluidType }: { fluidType: FluidType }) => { const LastDataValid = fluidType !== FluidType.MULTIFLUID && ( <div className="lastValidData"> - <Button className="btnText" onClick={moveToDate}> + <Button className="btnText" onClick={moveToLatestDate}> {t('consumption_visualizer.last_valid_data', { date: currentFluidStatus?.lastDataDate?.toFormat('dd/MM/yy') ?? '-', })} diff --git a/src/components/Hooks/useMoveToDate.tsx b/src/components/Hooks/useMoveToDate.tsx new file mode 100644 index 000000000..d0a432540 --- /dev/null +++ b/src/components/Hooks/useMoveToDate.tsx @@ -0,0 +1,22 @@ +import { DateTime } from 'luxon' +import DateChartService from 'services/dateChart.service' +import { setCurrentIndex, setSelectedDate } from 'store/chart/chart.slice' +import { useAppDispatch, useAppSelector } from 'store/hooks' + +export const useMoveToLatestDate = (lastDataDate: DateTime | null) => { + const dispatch = useAppDispatch() + const { currentTimeStep } = useAppSelector(state => state.ecolyo.chart) + + const moveToLatestDate = () => { + if (!lastDataDate) return + const dateChartService = new DateChartService() + const updatedIndex = dateChartService.defineDateIndex( + currentTimeStep, + lastDataDate + ) + dispatch(setSelectedDate(lastDataDate)) + dispatch(setCurrentIndex(updatedIndex)) + } + + return { moveToLatestDate } +} diff --git a/src/components/Options/ExportData/Modals/exportLoadingModal.tsx b/src/components/Options/ExportData/Modals/exportLoadingModal.tsx index 151eb4968..f25b2e28c 100644 --- a/src/components/Options/ExportData/Modals/exportLoadingModal.tsx +++ b/src/components/Options/ExportData/Modals/exportLoadingModal.tsx @@ -68,8 +68,9 @@ const ExportLoadingModal = ({ const fluidName = getFluidName(fluidType) dataRow[t('export.month')] = formatTwoDigits(dataload.date.month) dataRow[t('export.year')] = dataload.date.year - dataRow[`${t('export.consumption')} (${t(`FLUID.${fluidName}.UNIT`)})`] = - dataload.value + dataRow[ + `${t('export.consumption')} (${t('FLUID.' + fluidName + '.UNIT')})` + ] = dataload.value if (fluidType === FluidType.ELECTRICITY) { const emas = new EnedisMonthlyAnalysisDataService(client) const maxPowerEntities = await emas.getMaxPowerByDate( diff --git a/src/components/PartnerIssue/PartnerIssueModal.tsx b/src/components/PartnerIssue/PartnerIssueModal.tsx index 14549c027..d6158bd69 100644 --- a/src/components/PartnerIssue/PartnerIssueModal.tsx +++ b/src/components/PartnerIssue/PartnerIssueModal.tsx @@ -41,7 +41,7 @@ const PartnerIssueModal = ({ onClose={(event, reason): void => { event && reason !== 'backdropClick' && handleCloseClick(issuedFluid) }} - aria-labelledby="accessibility-title" + aria-label={t('consumption.partner_issue_modal.accessibility_title')} classes={{ root: 'modal-root', paper: 'modal-paper', diff --git a/src/components/PartnerIssue/__snapshots__/PartnerIssueModal.spec.tsx.snap b/src/components/PartnerIssue/__snapshots__/PartnerIssueModal.spec.tsx.snap index c133766ca..a0196786c 100644 --- a/src/components/PartnerIssue/__snapshots__/PartnerIssueModal.spec.tsx.snap +++ b/src/components/PartnerIssue/__snapshots__/PartnerIssueModal.spec.tsx.snap @@ -8,6 +8,7 @@ exports[`PartnerIssueModal component should render correctly 1`] = ` aria-hidden="true" /> <div + aria-label="consumption.partner_issue_modal.accessibility_title" class="MuiDialog-root modal-root" role="presentation" style="position: fixed; z-index: 1500; right: 0px; bottom: 0px; top: 0px; left: 0px;" @@ -28,7 +29,6 @@ exports[`PartnerIssueModal component should render correctly 1`] = ` tabindex="-1" > <div - aria-labelledby="accessibility-title" class="MuiPaper-root MuiDialog-paper modal-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog" > diff --git a/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx b/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx index ded85add4..61d317064 100644 --- a/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx +++ b/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx @@ -1,4 +1,5 @@ /* eslint-disable jsx-a11y/no-autofocus */ +import { InputAdornment, OutlinedInput } from '@material-ui/core' import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation' import 'components/ProfileType/profileTypeForm.scss' import { useI18n } from 'cozy-ui/transpiled/react/I18n' @@ -6,7 +7,6 @@ import { ProfileTypeStepForm } from 'enums' import { ProfileType, ProfileTypeAnswer, ProfileTypeValues } from 'models' import React, { useCallback, useEffect, useState } from 'react' import { useAppSelector } from 'store/hooks' -import { OutlinedInput, TextField, InputAdornment } from '@material-ui/core' interface ProfileTypeFormNumberProps { step: ProfileTypeStepForm diff --git a/src/locales/fr.json b/src/locales/fr.json index 3736e487c..f784635fc 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -326,6 +326,7 @@ }, "partner_issue_modal": { "title": "Attention\u00a0!", + "accessibility_title": "Modale de maintenance partenaire", "error_connect_gaz": "La connexion à vos données de <span class='gaz'>gaz</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='gaz'>GRDF</span> ou dans notre service)", "error_connect_elec": "La connexion à vos données d'<span class='elec'>électricité</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='elec'>Enedis</span> ou dans notre service)", "error_connect_water": "La connexion à vos données d'<span class='water'>eau</span> est actuellement dysfonctionnelle (Maintenance chez notre partenaire <span class='water'>Eau Publique du Grand Lyon</span> ou dans notre service)", diff --git a/src/services/account.service.ts b/src/services/account.service.ts index 5692a6065..3f3c782df 100644 --- a/src/services/account.service.ts +++ b/src/services/account.service.ts @@ -32,22 +32,11 @@ export default class AccountService { this._client = _client } - // TODO no need for this method - private buildAccountAttributes( - konnector: Konnector, - authData: AccountEGLData | AccountSgeData | AccountGRDFData - ): AccountAttributes { - return build(konnector, authData) - } - public async createAccount( konnector: Konnector, - accountAuthData: AccountEGLData | AccountSgeData | AccountGRDFData + authData: AccountEGLData | AccountSgeData | AccountGRDFData ): Promise<Account> { - const accountAttributes = this.buildAccountAttributes( - konnector, - accountAuthData - ) + const accountAttributes: AccountAttributes = build(konnector, authData) return createAccount(this._client, konnector, accountAttributes) } diff --git a/src/services/queryRunner.service.spec.ts b/src/services/queryRunner.service.spec.ts index 656180de0..bf9dc310c 100644 --- a/src/services/queryRunner.service.spec.ts +++ b/src/services/queryRunner.service.spec.ts @@ -1132,12 +1132,11 @@ describe('queryRunner service', () => { skip: 0, } mockClient.query.mockResolvedValue(mockQueryResult) - const result: number | Dataload | null = - await queryRunner.fetchFluidMaxData( - mockTimePeriod, - TimeStep.DAY, - FluidType.ELECTRICITY - ) + const result = await queryRunner.fetchFluidMaxData( + mockTimePeriod, + TimeStep.DAY, + FluidType.ELECTRICITY + ) expect(result).toBe(30.33) }) @@ -1165,12 +1164,11 @@ describe('queryRunner service', () => { mockClient.query .mockResolvedValueOnce(mockQueryResult) .mockResolvedValueOnce(mockQueryResult2) - const result: number | Dataload | null = - await queryRunner.fetchFluidMaxData( - mockTimePeriod, - TimeStep.HALF_AN_HOUR, - FluidType.ELECTRICITY - ) + const result = await queryRunner.fetchFluidMaxData( + mockTimePeriod, + TimeStep.HALF_AN_HOUR, + FluidType.ELECTRICITY + ) expect(result).toBe(7.82) }) @@ -1198,12 +1196,11 @@ describe('queryRunner service', () => { mockClient.query .mockResolvedValueOnce(mockQueryResult) .mockResolvedValueOnce(mockQueryResult2) - const result: number | Dataload | null = - await queryRunner.fetchFluidMaxData( - mockTimePeriod, - TimeStep.HALF_AN_HOUR, - FluidType.ELECTRICITY - ) + const result = await queryRunner.fetchFluidMaxData( + mockTimePeriod, + TimeStep.HALF_AN_HOUR, + FluidType.ELECTRICITY + ) expect(result).toBe(0) }) @@ -1217,12 +1214,11 @@ describe('queryRunner service', () => { }), } mockClient.query.mockRejectedValue(new Error()) - const result: number | Dataload | null = - await queryRunner.fetchFluidMaxData( - mockTimePeriod, - TimeStep.DAY, - FluidType.ELECTRICITY - ) + const result = await queryRunner.fetchFluidMaxData( + mockTimePeriod, + TimeStep.DAY, + FluidType.ELECTRICITY + ) expect(result).toBeNull() }) @@ -1235,12 +1231,11 @@ describe('queryRunner service', () => { zone: 'utc', }), } - const result: number | Dataload | null = - await queryRunner.fetchFluidMaxData( - mockTimePeriod, - TimeStep.DAY, - unknownFluidType - ) + const result = await queryRunner.fetchFluidMaxData( + mockTimePeriod, + TimeStep.DAY, + unknownFluidType + ) expect(result).toBeNull() }) @@ -1253,12 +1248,11 @@ describe('queryRunner service', () => { zone: 'utc', }), } - const result: number | Dataload | null = - await queryRunner.fetchFluidMaxData( - mockTimePeriod, - unknownTimeStep, - FluidType.ELECTRICITY - ) + const result = await queryRunner.fetchFluidMaxData( + mockTimePeriod, + unknownTimeStep, + FluidType.ELECTRICITY + ) expect(result).toBeNull() }) }) diff --git a/tests/__mocks__/fluidStatusData.mock.ts b/tests/__mocks__/fluidStatusData.mock.ts index 2943514e3..ddb5ab5f4 100644 --- a/tests/__mocks__/fluidStatusData.mock.ts +++ b/tests/__mocks__/fluidStatusData.mock.ts @@ -215,7 +215,7 @@ export const SgeStatusWithAccount: FluidStatus = { export const mockExpiredElec: FluidStatus = { fluidType: FluidType.ELECTRICITY, status: FluidState.KONNECTOR_NOT_FOUND, - maintenance: true, + maintenance: false, firstDataDate: null, lastDataDate: null, connection: { diff --git a/tests/__mocks__/profileData.mock.ts b/tests/__mocks__/profileData.mock.ts deleted file mode 100644 index 82a92073a..000000000 --- a/tests/__mocks__/profileData.mock.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { DateTime } from 'luxon' -import { Profile } from 'models' - -// TODO to remove ? -export const profileData: Profile = { - _id: '4d9403218ef13e65b2e3a8ad1700bc41', - _rev: '16-57473da4fc26315247c217083175dfa0', - id: '4d9403218ef13e65b2e3a8ad1700bc41', - ecogestureHash: '9798a0aaccb47cff906fc4931a2eff5f9371dd8b', - challengeHash: '1136feb6185c7643e071d14180c0e95782aa4ba3', - duelHash: '1136feb6185c7643e071d14180c0e95782aa4ba3', - quizHash: '1136feb6185c7643e071d14180c0e95782aa4ba3', - explorationHash: '1136feb6185c7643e071d14180c0e95782aa4ba3', - isFirstConnection: true, - sendConsumptionAlert: false, - waterDailyConsumptionLimit: 0, - mailToken: '', - lastConnectionDate: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - haveSeenLastAnalysis: true, - monthlyAnalysisDate: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - sendAnalysisNotification: false, - isProfileTypeCompleted: false, - onboarding: { - isWelcomeSeen: false, - }, - haveSeenEcogestureModal: false, - isProfileEcogestureCompleted: false, - activateHalfHourDate: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - customPopupDate: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - partnersIssueSeenDate: { - enedis: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - egl: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - grdf: DateTime.fromISO('2020-11-03T00:00:00.000Z', { - zone: 'utc', - }), - }, -} -- GitLab