diff --git a/.gitlab/merge_request_templates/default.md b/.gitlab/merge_request_templates/default.md index 8b164c75d09c71ee45fb7e18edcc3d268c717c7f..9ea6fd832bd528c65ba05fa76b4673afc119b3b5 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 1e2a29a532da7792671ffcc0d5044d9ac173b108..c14165379767884b8c104677e279665d5320708b 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 20b645a30b567aa285443488c39d063fcc157972..b18f888595a552c694c5afab6c02ad1a82919eea 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 6ca531524e14aee6a0b38d27aa3d933997f86beb..5d9fcb185d1862c01d949ba40d0ef8cf7ac7f7df 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 0ae8fc6a35f01ddadba355bd9d378ed27f144112..14ba3dd2c8b8fb66ccac624b268666b7f2acacc4 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 6c82063d9e801f488c20453b7e92842440afabd2..2b8a84e087e34da4a116f7981ef9e70ee1360518 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 722bc1e095e35f5a3b34289362af37c8ec2cc89f..96f96183d9ec8a16a75e399a85cdcbc450744fc4 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 f88a939c5fd228261016f74c02f0c3a674a14e70..2c0381eb6f25890ee3a081d8f4d7801222095876 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 2e87f46b2f5fa66dcc83c481adddcf7666f82acd..c03ea3ad25e1174fc717a7193223ccb7a4289fc5 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 0000000000000000000000000000000000000000..d0a432540b4c12746a40043a270207fe8b38f2f0 --- /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 151eb496891745a81bf0736db48775fe320b7e74..f25b2e28cd389aa8e53eca6aa830f70f4979bf73 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 14549c0270cc6531bc3ad17783ccd3e39eeedb0a..d6158bd696ecd68900096f8994e68a8d3f8532e3 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 c133766cab34b402c000f5244f9c4ec9c6aed62f..a0196786c26b18a6c58302c49e56c65b3c1a024b 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 ded85add46f1431517a14bbe7fbbf1f454691f5c..61d317064e8565d87c1793b4d5d15b0b7c11cb89 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 3736e487c75c74a5d117b2409c9b1a6b39c38838..f784635fc5c5e585cd463d23ae7f0ed0c13b60a2 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 5692a60656eb186725d3d77575ef4c77890b349b..3f3c782df013c3a84d670bb751526369e09dd119 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 656180de012107559449b5f0b7a78ed61419aa5a..bf9dc310c125935eb9266ce5bdd1094edff7414a 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 2943514e3b8487518d8a48a4f1625269c9fdf8ec..ddb5ab5f4303299e070f6fbfed2a789b937c0115 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 82a92073ab89b9f5aed02680d149d039b8d5bdb3..0000000000000000000000000000000000000000 --- 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', - }), - }, -}