123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- import { PanelModel, FieldConfigSource, DataQuery } from '@grafana/data';
- import { graphPanelMigrationHandler } from './GraphMigrations';
- describe('Graph Panel Migrations', () => {
- it('from 7.0', () => {
- const panel = {
- aliasColors: {},
- bars: false,
- dashLength: 10,
- dashes: false,
- fill: 1,
- fillGradient: 0,
- gridPos: {
- h: 8,
- w: 9,
- x: 6,
- y: 0,
- },
- hiddenSeries: false,
- id: 23763571993,
- legend: {
- avg: false,
- current: false,
- max: false,
- min: false,
- show: true,
- total: false,
- values: false,
- },
- lines: true,
- linewidth: 1,
- nullPointMode: 'null',
- options: {
- dataLinks: [
- {
- targetBlank: false,
- title: 'Drill it down',
- url: 'THE DRILLDOWN URL',
- },
- ],
- },
- percentage: false,
- pointradius: 2,
- points: false,
- renderer: 'flot',
- seriesOverrides: [
- {
- alias: 'Bar datacenter {datacenter="baz", region="us-east-2"}',
- yaxis: 2,
- },
- ],
- spaceLength: 10,
- stack: false,
- steppedLine: false,
- targets: [
- {
- alias: 'Foo datacenter',
- labels: 'datacenter=foo,region=us-east-1',
- refId: 'A',
- scenarioId: 'random_walk',
- },
- {
- alias: 'Bar datacenter',
- labels: 'datacenter=bar,region=us-east-2',
- refId: 'B',
- scenarioId: 'random_walk',
- },
- {
- alias: 'Bar datacenter',
- labels: 'datacenter=baz,region=us-east-2',
- refId: 'C',
- scenarioId: 'random_walk',
- },
- ] as unknown as DataQuery[],
- thresholds: [],
- timeFrom: null,
- timeRegions: [],
- timeShift: null,
- title: 'Multiple series',
- tooltip: {
- shared: true,
- sort: 0,
- value_type: 'individual',
- },
- type: 'graph',
- xaxis: {
- buckets: null,
- mode: 'time',
- name: null,
- show: true,
- values: [],
- },
- yaxes: [
- {
- format: 'percent',
- label: null,
- logBase: 1,
- max: null,
- min: null,
- show: true,
- $$hashKey: 'object:122',
- },
- {
- format: 'gflops',
- label: null,
- logBase: 1,
- max: null,
- min: null,
- show: true,
- $$hashKey: 'object:123',
- },
- ],
- yaxis: {
- align: false,
- alignLevel: null,
- },
- datasource: null,
- } as Omit<PanelModel, 'fieldConfig'>;
- const result = graphPanelMigrationHandler(panel as PanelModel);
- const fieldSource = (panel as any).fieldConfig as FieldConfigSource;
- expect(result.dataLinks).toBeUndefined();
- expect(fieldSource.defaults.links).toHaveLength(1);
- const link = fieldSource.defaults.links![0];
- expect(link.url).toEqual('THE DRILLDOWN URL');
- });
- it('from 7.1 it should preserve existing fieldConfig', () => {
- const panel = {
- id: 1,
- fieldConfig: {
- defaults: {
- links: [
- {
- title: 'Details',
- url: '/link',
- },
- ],
- },
- overrides: [],
- },
- } as unknown as PanelModel;
- graphPanelMigrationHandler(panel as PanelModel);
- const fieldConfig = (panel as any).fieldConfig as FieldConfigSource;
- expect(fieldConfig.defaults.links).toHaveLength(1);
- });
- });
|