import React from 'react';
import { fireEvent, render } from '@testing-library/react';
import { Legend } from '@/components/addons/legend/Legend';
import { colors, dimensions, rawData } from 'eazychart-core/src/sample-data';
import 'tests/mocks/ResizeObserver';
import { Chart } from '@/components/Chart';
import { baseChartProps } from 'tests/common';
import { ColorScale } from '@/components/scales/ColorScale';
describe('Legend', () => {
it('renders no filters for empty data', () => {
const wrapper = render(
,
TooltipComponent: () => <>{null}>,
}}
isWrapped={false}
>
);
expect(wrapper.container.innerHTML).toMatchSnapshot();
});
it('renders filters for data supplied', async () => {
const wrapper = render(
,
TooltipComponent: () => <>{null}>,
}}
isWrapped={false}
>
);
expect(wrapper.container.innerHTML).toMatchSnapshot();
});
it('calls toggleDatum on filter click', async () => {
const onToggleDatum = jest.fn();
const wrapper = render(
,
TooltipComponent: () => <>{null}>,
}}
isWrapped={false}
>
);
const [firstLegend, secondLegend] = await wrapper.findAllByRole('button');
fireEvent.click(firstLegend);
expect(onToggleDatum).toBeCalledWith(rawData[0].label, false, colors[0]);
fireEvent.click(firstLegend);
expect(onToggleDatum).toBeCalledWith(rawData[0].label, true, colors[0]);
fireEvent.click(secondLegend);
expect(onToggleDatum).toBeCalledWith(rawData[1].label, false, colors[1]);
});
});