Skip to content
Snippets Groups Projects
ConsumptionDataValidator.spec.ts 2.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • Hugo NOUTS's avatar
    Hugo NOUTS committed
    'use strict'
    import ConsumptionDataValidator from '../../src/services/consumptionDataValidatorService'
    import { DateTime } from 'luxon'
    import { FluidType } from '../../src/enum/fluid.enum'
    import { TimeStep } from '../../src/services/dataConsumptionContracts'
    
    describe('Consumption Data Validator service tests', () => {
      beforeEach(() => {
        jest.resetAllMocks()
      })
    
      const consumptionDataValidator = new ConsumptionDataValidator()
    
      /*
    consumptionDataValidator.ValidateGetGraphData(
      timePeriod,
      timeStep,
      fluidTypes,
      compareTimePeriod
    )
    */
    
      const yearTimeStep = TimeStep.MONTH
    
      const sumReducer = (acc, dataLoad) => acc + dataLoad.value
    
      it('matching fluidTypes and TimeStep', () => {
        const timePeriod = {
          startDate: DateTime.local(2018, 1, 1),
          endDate: DateTime.local(2018, 1, 2),
        }
        const compareTimePeriod = {
          startDate: DateTime.local(2018, 1, 2),
          endDate: DateTime.local(2018, 1, 3),
        }
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(
            timePeriod,
            TimeStep.HALF_AN_HOUR,
            [FluidType.WATER]
          )
        ).toBe(false)
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(
            timePeriod,
            TimeStep.HALF_AN_HOUR,
            [FluidType.ELECTRICITY]
          )
        ).toBe(true)
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(
            timePeriod,
            TimeStep.HALF_AN_HOUR,
            [FluidType.WATER]
          )
        ).toBe(false)
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(timePeriod, TimeStep.HOUR, [
            FluidType.ELECTRICITY,
          ])
        ).toBe(false)
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(timePeriod, TimeStep.HOUR, [
            FluidType.GAS,
          ])
        ).toBe(true)
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(timePeriod, TimeStep.HOUR, [
            FluidType.WATER,
          ])
        ).toBe(false)
      })
    
      it('comparing timePeriod starting and ending dates', () => {
        const timePeriod = {
          startDate: DateTime.local(2018, 1, 2),
          endDate: DateTime.local(2018, 1, 1),
        }
    
        expect(
          consumptionDataValidator.ValidateGetGraphData(
            timePeriod,
            TimeStep.HALF_AN_HOUR,
            [FluidType.ELECTRICITY]
          )
        ).toBe(false)
      })
    })