Commit b12df9d6 by Dominik Prokop Committed by GitHub

Do not show alerts tab when alerting is disabled (#25285)

* Do not show alerts tab when alerting is disabled

* Add tests
parent add1bcb5
import { getPanelEditorTabs } from './selectors';
import { LocationState } from 'app/types';
import { PanelPlugin } from '@grafana/data';
import { PanelEditorTabId } from '../types';
import { updateConfig } from '../../../../../core/config';
describe('getPanelEditorTabs selector', () => {
it('return no tabs when no plugin provided', () => {
expect(getPanelEditorTabs({} as LocationState)).toEqual([]);
});
it('return no tabs when plugin do not support queries', () => {
expect(getPanelEditorTabs({} as LocationState, { meta: { skipDataQuery: true } } as PanelPlugin)).toEqual([]);
});
describe('alerts tab', () => {
describe('when alerting enabled', () => {
beforeAll(() => {
updateConfig({
alertingEnabled: true,
});
});
it('returns Alerts tab for graph panel', () => {
const tabs = getPanelEditorTabs(
{ query: {} } as LocationState,
{
meta: {
id: 'graph',
},
} as PanelPlugin
);
expect(tabs.length).toEqual(3);
expect(tabs[2].id).toEqual(PanelEditorTabId.Alert);
});
it('does not returns tab for panel other than graph', () => {
const tabs = getPanelEditorTabs(
{ query: {} } as LocationState,
{
meta: {
id: 'table',
},
} as PanelPlugin
);
expect(tabs.length).toEqual(2);
expect(tabs[1].id).toEqual(PanelEditorTabId.Transform);
});
});
describe('when alerting disabled', () => {
beforeAll(() => {
updateConfig({
alertingEnabled: false,
});
});
it('does not return Alerts tab', () => {
const tabs = getPanelEditorTabs(
{ query: {} } as LocationState,
{
meta: {
id: 'graph',
},
} as PanelPlugin
);
expect(tabs.length).toEqual(2);
expect(tabs[1].id).toEqual(PanelEditorTabId.Transform);
});
});
});
});
......@@ -2,6 +2,7 @@ import memoizeOne from 'memoize-one';
import { LocationState } from 'app/types';
import { PanelPlugin } from '@grafana/data';
import { PanelEditorTab, PanelEditorTabId } from '../types';
import { getConfig } from 'app/core/config';
export const getPanelEditorTabs = memoizeOne((location: LocationState, plugin?: PanelPlugin) => {
const tabs: PanelEditorTab[] = [];
......@@ -34,7 +35,7 @@ export const getPanelEditorTabs = memoizeOne((location: LocationState, plugin?:
});
}
if (plugin.meta.id === 'graph') {
if (getConfig().alertingEnabled && plugin.meta.id === 'graph') {
tabs.push({
id: PanelEditorTabId.Alert,
text: 'Alert',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment