12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import { FieldColorModeId, FieldConfigProperty, FieldMatcherID, PanelModel } from '@grafana/data';
- import { LegendDisplayMode } from '@grafana/schema';
- import { PieChartPanelChangedHandler } from './migrations';
- import { PieChartLabels } from './types';
- describe('PieChart -> PieChartV2 migrations', () => {
- it('only migrates old piechart', () => {
- const panel = {} as PanelModel;
- const options = PieChartPanelChangedHandler(panel, 'some-panel-id', {});
- expect(options).toEqual({});
- });
- it('correctly assigns color overrides', () => {
- const panel = { options: {} } as PanelModel;
- const oldPieChartOptions = {
- angular: {
- aliasColors: { x: '#fff' },
- },
- };
- PieChartPanelChangedHandler(panel, 'grafana-piechart-panel', oldPieChartOptions);
- expect(panel.fieldConfig.overrides).toContainEqual({
- matcher: {
- id: FieldMatcherID.byName,
- options: 'x',
- },
- properties: [
- {
- id: FieldConfigProperty.Color,
- value: {
- mode: FieldColorModeId.Fixed,
- fixedColor: '#fff',
- },
- },
- ],
- });
- });
- it('correctly sets sum calculation', () => {
- const panel = { options: {} } as PanelModel;
- const oldPieChartOptions = {
- angular: { valueName: 'total' },
- };
- const options = PieChartPanelChangedHandler(panel, 'grafana-piechart-panel', oldPieChartOptions);
- expect(options).toMatchObject({ reduceOptions: { calcs: ['sum'] } });
- });
- it('correctly sets labels when old PieChart has legend on graph', () => {
- const panel = { options: {} } as PanelModel;
- const oldPieChartOptions = {
- angular: {
- legendType: 'On graph',
- legend: { values: true },
- },
- };
- const options = PieChartPanelChangedHandler(panel, 'grafana-piechart-panel', oldPieChartOptions);
- expect(options).toMatchObject({ displayLabels: [PieChartLabels.Name, PieChartLabels.Value] });
- });
- it('hides the legend when no legend values are selected', () => {
- const panel = { options: {} } as PanelModel;
- const oldPieChartOptions = {
- angular: {
- legendType: 'On graph',
- legend: {},
- },
- };
- const options = PieChartPanelChangedHandler(panel, 'grafana-piechart-panel', oldPieChartOptions);
- expect(options).toMatchObject({ legend: { displayMode: LegendDisplayMode.Hidden } });
- });
- });
|