import { DataloadState, FluidType } from 'enums' import { mount } from 'enzyme' import toJson from 'enzyme-to-json' import { Dataload } from 'models' import React from 'react' import { baseDataLoad } from 'tests/__mocks__/chartData.mock' import DataloadNoValue from './DataloadNoValue' const mockSetActive = jest.fn() describe('DataloadNoValue component', () => { const mockDataload: Dataload = baseDataLoad it('should render correctly', () => { const wrapper = mount( <DataloadNoValue dataload={mockDataload} fluidType={FluidType.ELECTRICITY} setActive={mockSetActive} /> ) expect(toJson(wrapper)).toMatchSnapshot() }) describe('should render correctly no data', () => { it('case state EMPTY', () => { const _mockdataLoad = { ...mockDataload, state: DataloadState.EMPTY } const wrapper = mount( <DataloadNoValue dataload={_mockdataLoad} fluidType={FluidType.ELECTRICITY} setActive={mockSetActive} /> ) expect(wrapper.find('.dataloadvisualizer-value').text()).toBe( 'consumption_visualizer.no_data' ) }) it('case state HOLE', () => { const _mockdataLoad = { ...mockDataload, state: DataloadState.HOLE } const wrapper = mount( <DataloadNoValue dataload={_mockdataLoad} fluidType={FluidType.ELECTRICITY} setActive={mockSetActive} /> ) expect(wrapper.find('.dataloadvisualizer-value').text()).toBe( 'consumption_visualizer.no_data' ) }) it('case state AGGREGATED_EMPTY', () => { const _mockdataLoad = { ...mockDataload, state: DataloadState.AGGREGATED_EMPTY, } const wrapper = mount( <DataloadNoValue dataload={_mockdataLoad} fluidType={FluidType.MULTIFLUID} setActive={mockSetActive} /> ) expect(wrapper.find('.dataloadvisualizer-value').text()).toBe( 'consumption_visualizer.no_data' ) }) }) describe('should render correctly missing data', () => { it('case state MISSING', () => { const _mockdataLoad = { ...mockDataload, state: DataloadState.MISSING } const wrapper = mount( <DataloadNoValue dataload={_mockdataLoad} fluidType={FluidType.ELECTRICITY} setActive={mockSetActive} /> ) expect(wrapper.find('.dataloadvisualizer-content').text()).toBe( 'consumption_visualizer.missing_data' ) }) it('case state AGGREGATED_HOLE_OR_MISSING', () => { const _mockdataLoad = { ...mockDataload, state: DataloadState.AGGREGATED_HOLE_OR_MISSING, } const wrapper = mount( <DataloadNoValue dataload={_mockdataLoad} fluidType={FluidType.MULTIFLUID} setActive={mockSetActive} /> ) expect(wrapper.find('.dataloadvisualizer-content').text()).toBe( 'consumption_visualizer.missing_data' ) }) }) it('should call setActive when missing message is clicked', () => { const _mockdataLoad = { ...mockDataload, state: DataloadState.MISSING } const wrapper = mount( <DataloadNoValue dataload={_mockdataLoad} fluidType={FluidType.ELECTRICITY} setActive={mockSetActive} /> ) wrapper.find('.dataloadvisualizer-content').simulate('click') expect(mockSetActive).toHaveBeenCalledWith(true) }) })