mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -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 { LocationState } from 'app/types';
|
||||||
import { PanelPlugin } from '@grafana/data';
|
import { PanelPlugin } from '@grafana/data';
|
||||||
import { PanelEditorTab, PanelEditorTabId } from '../types';
|
import { PanelEditorTab, PanelEditorTabId } from '../types';
|
||||||
|
import { getConfig } from 'app/core/config';
|
||||||
|
|
||||||
export const getPanelEditorTabs = memoizeOne((location: LocationState, plugin?: PanelPlugin) => {
|
export const getPanelEditorTabs = memoizeOne((location: LocationState, plugin?: PanelPlugin) => {
|
||||||
const tabs: PanelEditorTab[] = [];
|
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({
|
tabs.push({
|
||||||
id: PanelEditorTabId.Alert,
|
id: PanelEditorTabId.Alert,
|
||||||
text: 'Alert',
|
text: 'Alert',
|
||||||
|
Loading…
Reference in New Issue
Block a user