TimeSeries: Preserve RegExp series overrides when transforming from old graph (#36134)

This commit is contained in:
Ashley Harrison 2021-06-25 09:50:08 +01:00 committed by GitHub
parent 4f3bc71caa
commit b8b90ec74f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 69 additions and 1 deletions

View File

@ -155,6 +155,60 @@ Object {
}
`;
exports[`Graph Migrations preserves series overrides using a regex alias 1`] = `
Object {
"fieldConfig": Object {
"defaults": Object {
"custom": Object {
"axisPlacement": "hidden",
"drawStyle": "line",
"fillOpacity": 60,
"gradientMode": "opacity",
"lineInterpolation": "stepAfter",
"lineWidth": 1,
"showPoints": "never",
"spanNulls": true,
},
"nullValueMode": "null",
"unit": "short",
},
"overrides": Array [
Object {
"matcher": Object {
"id": "byRegexp",
"options": "/^A-/",
},
"properties": Array [
Object {
"id": "color",
"value": Object {
"fixedColor": "rgba(165, 72, 170, 0.77)",
"mode": "fixed",
},
},
],
},
],
},
"options": Object {
"legend": Object {
"calcs": Array [
"mean",
"lastNotNull",
"max",
"min",
"sum",
],
"displayMode": "table",
"placement": "bottom",
},
"tooltip": Object {
"mode": "single",
},
},
}
`;
exports[`Graph Migrations simple bars 1`] = `
Object {
"fieldConfig": Object {

View File

@ -1,5 +1,6 @@
import { PanelModel, FieldConfigSource } from '@grafana/data';
import { graphPanelChangedHandler } from './migrations';
import { cloneDeep } from 'lodash';
describe('Graph Migrations', () => {
let prevFieldConfig: FieldConfigSource;
@ -67,6 +68,15 @@ describe('Graph Migrations', () => {
expect(panel).toMatchSnapshot();
});
it('preserves series overrides using a regex alias', () => {
const old: any = {
angular: customColorRegex,
};
const panel = {} as PanelModel;
panel.options = graphPanelChangedHandler(panel, 'graph', old, prevFieldConfig);
expect(panel).toMatchSnapshot();
});
describe('legend', () => {
test('without values', () => {
const old: any = {
@ -383,6 +393,9 @@ const customColor = {
datasource: null,
};
const customColorRegex = cloneDeep(customColor);
customColorRegex.seriesOverrides[0].alias = '/^A-/';
const stairscase = {
aliasColors: {},
dashLength: 10,

View File

@ -112,9 +112,10 @@ export function flotToGraphOptions(angular: any): { fieldConfig: FieldConfigSour
if (!seriesOverride.alias) {
continue; // the matcher config
}
const aliasIsRegex = seriesOverride.alias.startsWith('/') && seriesOverride.alias.endsWith('/');
const rule: ConfigOverrideRule = {
matcher: {
id: FieldMatcherID.byName,
id: aliasIsRegex ? FieldMatcherID.byRegexp : FieldMatcherID.byName,
options: seriesOverride.alias,
},
properties: [],