From 6aa57d4a489297265ca5f703f8dd1bb8a63703a4 Mon Sep 17 00:00:00 2001 From: Bastien DUMONT <bdumont@grandlyon.com> Date: Wed, 26 Jun 2024 17:18:18 +0200 Subject: [PATCH] test(consumption): add tests for fetchAvgTemperature --- src/services/consumption.service.spec.ts | 18 ++++++++++++++++++ src/services/consumption.service.ts | 5 +---- tests/__mocks__/avgTemperature.mock.ts | 16 ++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 tests/__mocks__/avgTemperature.mock.ts diff --git a/src/services/consumption.service.spec.ts b/src/services/consumption.service.spec.ts index ca2d8e95b..384bb5831 100644 --- a/src/services/consumption.service.spec.ts +++ b/src/services/consumption.service.spec.ts @@ -10,6 +10,7 @@ import { FluidStatus, TimePeriod, } from 'models' +import { mockAvgTemperature } from 'tests/__mocks__/avgTemperature.mock' import mockClient from 'tests/__mocks__/client.mock' import { fetchDayDataComplete, @@ -513,6 +514,23 @@ describe('Consumption service', () => { }) }) + describe('fetchAvgTemperature', () => { + it('should return the average temperature when data is available', async () => { + mockClient + .getStackClient() + .fetchJSON.mockResolvedValueOnce(mockAvgTemperature) + const result = await consumptionDataManager.fetchAvgTemperature(2023, 5) + expect(result).toBe(mockAvgTemperature.values[0].average_measurement) + }) + it('should throw an error when no data is available', async () => { + mockClient + .getStackClient() + .fetchJSON.mockResolvedValueOnce({ nb_results: 0 }) + const result = await consumptionDataManager.fetchAvgTemperature(2023, 5) + expect(result).toBe(null) + }) + }) + describe('saveDoc & saveDocs', () => { it('should saveDoc', async () => { const mockQueryResult: QueryResult<DataloadEntity> = { diff --git a/src/services/consumption.service.ts b/src/services/consumption.service.ts index 57ccc0eb3..bdd8ba098 100644 --- a/src/services/consumption.service.ts +++ b/src/services/consumption.service.ts @@ -647,11 +647,8 @@ export default class ConsumptionDataManager { ) if (result && result.nb_results !== 0) { return result.values[0].average_measurement - } else { - throw new Error( - `No average temperature found for ${avgTemperatureDate}` - ) } + throw new Error(`No average temperature found for ${avgTemperatureDate}`) } catch (error) { const errorMessage = `fetchAvgTemperature error : ${error}` logStack('error', errorMessage) diff --git a/tests/__mocks__/avgTemperature.mock.ts b/tests/__mocks__/avgTemperature.mock.ts new file mode 100644 index 000000000..d50cee3d4 --- /dev/null +++ b/tests/__mocks__/avgTemperature.mock.ts @@ -0,0 +1,16 @@ +/* eslint-disable camelcase */ +import { AvgTemperatureResult } from 'models' + +export const mockAvgTemperature: AvgTemperatureResult = { + fields: ['identifiant', 'average_measurement', 'month'], + layer_name: '', + nb_results: 1, + table_href: '', + values: [ + { + average_measurement: 17.6, + identifiant: '69123002', + month: '2023-05', + }, + ], +} -- GitLab