import { shallow } from 'enzyme';
import { Mock } from 'ts-mockery';
import { Chart, ChartDataset } from 'chart.js';
import { DoughnutChartLegend } from '../../../src/visits/charts/DoughnutChartLegend';
describe('', () => {
const labels = ['foo', 'bar', 'baz', 'foo2', 'bar2'];
const colors = ['foo_color', 'bar_color', 'baz_color'];
const defaultColor = 'red';
const datasets = [Mock.of({ backgroundColor: colors })];
const chart = Mock.of({
config: {
data: { labels, datasets },
options: { defaultColor } as any,
},
});
it('renders the expected amount of items with expected colors and labels', () => {
const wrapper = shallow();
const items = wrapper.find('li');
expect.assertions(labels.length * 2 + 1);
expect(items).toHaveLength(labels.length);
labels.forEach((label, index) => {
const item = items.at(index);
expect(item.find('.doughnut-chart-legend__item-color').prop('style')).toEqual({
backgroundColor: colors[index] ?? defaultColor,
});
expect(item.find('.doughnut-chart-legend__item-text').text()).toEqual(label);
});
});
});