diff --git a/src/services/fluid.service.spec.ts b/src/services/fluid.service.spec.ts index e8e848c6007b3848530bf85bf8a021045acb0fb6..1b856e7b956b684d57f9738d127975d432088afa 100644 --- a/src/services/fluid.service.spec.ts +++ b/src/services/fluid.service.spec.ts @@ -49,6 +49,13 @@ jest.mock('./consumption.service', () => { describe('FLuid service', () => { const fluidService = new FluidService(mockClient) + beforeEach(() => { + mockGetAccountByType.mockReset() + mockGetTrigger.mockReset() + mockFetchTriggerState.mockReset() + mockFetchAllLastDateData.mockReset() + }) + describe('getFluidStatus method', () => { it('shoud return fluid status for all fluids', async () => { const mockLastDataDates: (DateTime | null)[] = [ @@ -91,7 +98,89 @@ describe('FLuid service', () => { expect(result).toEqual(mockResult) }) - it('shoud return fluid status with null status', async () => { + it('shoud return fluid status with null status when no accounts', async () => { + const mockLastDataDates: (DateTime | null)[] = [ + DateTime.local(), + DateTime.local(), + DateTime.local(), + ] + const mockResult: FluidStatus[] = [ + { + fluidType: FluidType.ELECTRICITY, + status: null, + lastDataDate: mockLastDataDates[FluidType.ELECTRICITY], + }, + { + fluidType: FluidType.WATER, + status: null, + lastDataDate: mockLastDataDates[FluidType.WATER], + }, + { + fluidType: FluidType.GAS, + status: null, + lastDataDate: mockLastDataDates[FluidType.GAS], + }, + ] + mockGetAccountByType + .mockResolvedValueOnce(null) + .mockResolvedValueOnce(null) + .mockResolvedValueOnce(null) + mockGetKonnector + .mockResolvedValueOnce(konnectorsData[0]) + .mockResolvedValueOnce(konnectorsData[1]) + .mockResolvedValueOnce(konnectorsData[2]) + mockGetTrigger + .mockResolvedValueOnce(triggersData[0]) + .mockResolvedValueOnce(triggersData[1]) + .mockResolvedValueOnce(triggersData[2]) + mockFetchTriggerState.mockResolvedValue(triggerStateData) + mockFetchAllLastDateData.mockResolvedValue(mockLastDataDates) + const result: FluidStatus[] = await fluidService.getFluidStatus() + expect(result).toEqual(mockResult) + }) + + it('shoud return fluid status with null status when no konnector', async () => { + const mockLastDataDates: (DateTime | null)[] = [ + DateTime.local(), + DateTime.local(), + DateTime.local(), + ] + const mockResult: FluidStatus[] = [ + { + fluidType: FluidType.ELECTRICITY, + status: null, + lastDataDate: mockLastDataDates[FluidType.ELECTRICITY], + }, + { + fluidType: FluidType.WATER, + status: null, + lastDataDate: mockLastDataDates[FluidType.WATER], + }, + { + fluidType: FluidType.GAS, + status: null, + lastDataDate: mockLastDataDates[FluidType.GAS], + }, + ] + mockGetAccountByType + .mockResolvedValueOnce(accountsData[0]) + .mockResolvedValueOnce(accountsData[1]) + .mockResolvedValueOnce(accountsData[2]) + mockGetKonnector + .mockResolvedValueOnce(null) + .mockResolvedValueOnce(null) + .mockResolvedValueOnce(null) + mockGetTrigger + .mockResolvedValueOnce(triggersData[0]) + .mockResolvedValueOnce(triggersData[1]) + .mockResolvedValueOnce(triggersData[2]) + mockFetchTriggerState.mockResolvedValue(triggerStateData) + mockFetchAllLastDateData.mockResolvedValue(mockLastDataDates) + const result: FluidStatus[] = await fluidService.getFluidStatus() + expect(result).toEqual(mockResult) + }) + + it('shoud return fluid status with null status when no triggers', async () => { const mockLastDataDates: (DateTime | null)[] = [ DateTime.local(), DateTime.local(),