Newer
Older
import { DataloadState, FluidType } from 'enums'
import { DateTime } from 'luxon'
import { Datachart } from 'models'
import React from 'react'
import { Provider } from 'react-redux'
import { graphMonthData } from 'tests/__mocks__/chartData.mock'
import { createMockEcolyoStore } from 'tests/__mocks__/store'
import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
import TotalAnalysisChart from './TotalAnalysisChart'
const mockGetGraphData = jest.fn()
jest.mock('services/consumption.service', () => {
return jest.fn(() => ({
getGraphData: mockGetGraphData,
}))
jest.mock(
'components/Analysis/TotalAnalysisChart/PieChart',
() => 'mock-piechart'
)
jest.mock(
'components/ConsumptionVisualizer/EstimatedConsumptionModal',
() => 'mock-estimatedmodal'
)
describe('TotalAnalysisChart component', () => {
it('should be rendered correctly', async () => {
const wrapper = mount(
<Provider store={store}>
<TotalAnalysisChart fluidsWithData={[FluidType.ELECTRICITY]} />
await waitForComponentToPaint(wrapper)
})
it('should render several fluids and display month data', async () => {
mockGetGraphData.mockResolvedValue(graphMonthData)
const wrapper = mount(
<Provider store={store}>
<TotalAnalysisChart
fluidsWithData={[
FluidType.ELECTRICITY,
FluidType.WATER,
FluidType.GAS,
]}
expect(wrapper.find('.fluidconso').exists()).toBeTruthy()
})
it('should render empty price', async () => {
const emptyData: Datachart = {
actualData: [
{
date: DateTime.fromISO('2020-09-01T00:00:00.000Z', {
zone: 'utc',
}),
value: 69.18029999999999,
state: DataloadState.VALID,
valueDetail: [{ value: -1, state: DataloadState.EMPTY }],
mockGetGraphData.mockResolvedValue(emptyData)
const wrapper = mount(
<Provider store={store}>
<TotalAnalysisChart
fluidsWithData={[FluidType.ELECTRICITY, FluidType.WATER]}
expect(wrapper.find('.fluidconso').text()).toBe('--- €')
})
const emptyData: Datachart = {
actualData: [
{
date: DateTime.fromISO('2020-09-01T00:00:00.000Z', {
zone: 'utc',
}),
value: 69.18029999999999,
state: DataloadState.VALID,
valueDetail: [{ value: -1, state: DataloadState.EMPTY }],
mockGetGraphData.mockResolvedValue(emptyData)
<TotalAnalysisChart fluidsWithData={[FluidType.ELECTRICITY]} />