Commit f1591955 by Daniel Lee

explore: fixes #11953

parent 0841e67d
...@@ -312,7 +312,7 @@ class MetricsPanelCtrl extends PanelCtrl { ...@@ -312,7 +312,7 @@ class MetricsPanelCtrl extends PanelCtrl {
getAdditionalMenuItems() { getAdditionalMenuItems() {
const items = []; const items = [];
if (this.datasource.supportsExplore) { if (this.datasource && this.datasource.supportsExplore) {
items.push({ items.push({
text: 'Explore', text: 'Explore',
click: 'ctrl.explore();', click: 'ctrl.explore();',
......
jest.mock('app/core/core', () => ({}));
import { MetricsPanelCtrl } from '../metrics_panel_ctrl';
import q from 'q';
import { PanelModel } from 'app/features/dashboard/panel_model';
describe('MetricsPanelCtrl', () => {
let ctrl;
beforeEach(() => {
ctrl = setupController();
});
describe('when getting additional menu items', () => {
let additionalItems;
describe('and has no datasource set', () => {
beforeEach(() => {
additionalItems = ctrl.getAdditionalMenuItems();
});
it('should not return any items', () => {
expect(additionalItems.length).toBe(0);
});
});
describe('and has datasource set that supports explore', () => {
beforeEach(() => {
ctrl.datasource = { supportsExplore: true };
additionalItems = ctrl.getAdditionalMenuItems();
});
it('should not return any items', () => {
expect(additionalItems.length).toBe(1);
});
});
});
});
function setupController() {
const injectorStub = {
get: type => {
switch (type) {
case '$q': {
return q;
}
default: {
return jest.fn();
}
}
},
};
const scope = {
panel: { events: [] },
appEvent: jest.fn(),
onAppEvent: jest.fn(),
$on: jest.fn(),
colors: [],
};
MetricsPanelCtrl.prototype.panel = new PanelModel({ type: 'test' });
return new MetricsPanelCtrl(scope, injectorStub);
}
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