Merge pull request #11973 from grafana/11953-explore-metricpanel

explore: fixes #11953
This commit is contained in:
Marcus Efraimsson 2018-05-21 11:13:22 +02:00 committed by GitHub
commit cebae40468
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 66 additions and 1 deletions

View File

@ -312,7 +312,7 @@ class MetricsPanelCtrl extends PanelCtrl {
getAdditionalMenuItems() {
const items = [];
if (this.datasource.supportsExplore) {
if (this.datasource && this.datasource.supportsExplore) {
items.push({
text: 'Explore',
click: 'ctrl.explore();',

View File

@ -0,0 +1,65 @@
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);
}