mirror of
https://github.com/grafana/grafana.git
synced 2025-01-24 07:17:08 -06:00
Do not show alerts tab when alerting is disabled (#25285)
* Do not show alerts tab when alerting is disabled * Add tests
This commit is contained in:
parent
add1bcb59c
commit
b12df9d64c
@ -0,0 +1,74 @@
|
||||
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',
|
||||
|
Loading…
Reference in New Issue
Block a user