define([ 'helpers', 'features/panel/panelSrv', 'features/panel/panelHelper', 'panels/graph/module' ], function(helpers) { 'use strict'; describe('GraphCtrl', function() { var ctx = new helpers.ControllerTestContext(); beforeEach(module('grafana.services')); beforeEach(module('grafana.panels.graph')); beforeEach(ctx.providePhase()); beforeEach(ctx.createControllerPhase('GraphCtrl')); describe('get_data with 2 series', function() { beforeEach(function() { ctx.annotationsSrv.getAnnotations = sinon.stub().returns(ctx.$q.when([])); ctx.datasource.query = sinon.stub().returns(ctx.$q.when({ data: [ { target: 'test.cpu1', datapoints: [[1, 10]]}, { target: 'test.cpu2', datapoints: [[1, 10]]} ] })); ctx.scope.render = sinon.spy(); ctx.scope.refreshData(ctx.datasource); ctx.scope.$digest(); }); it('should send time series to render', function() { var data = ctx.scope.render.getCall(0).args[0]; expect(data.length).to.be(2); }); describe('get_data failure following success', function() { beforeEach(function() { ctx.datasource.query = sinon.stub().returns(ctx.$q.reject('Datasource Error')); ctx.scope.refreshData(ctx.datasource); ctx.scope.$digest(); }); }); }); }); });