mirror of https://github.com/grafana/grafana
Merge pull request #11973 from grafana/11953-explore-metricpanel
explore: fixes #11953pull/11936/merge
commit
cebae40468
@ -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); |
||||
} |
Loading…
Reference in new issue