import { describe, beforeEach, it, expect, angularMocks } from '../../../../../test/lib/common'; import moment from 'moment'; import { GraphCtrl } from '../module'; import helpers from '../../../../../test/specs/helpers'; describe('GraphCtrl', function() { var ctx = new helpers.ControllerTestContext(); beforeEach(angularMocks.module('grafana.services')); beforeEach(angularMocks.module('grafana.controllers')); beforeEach( angularMocks.module(function($compileProvider) { $compileProvider.preAssignBindingsEnabled(true); }) ); beforeEach(ctx.providePhase()); beforeEach(ctx.createPanelController(GraphCtrl)); beforeEach(() => { ctx.ctrl.annotationsPromise = Promise.resolve({}); ctx.ctrl.updateTimeRange(); }); describe('when time series are outside range', function() { beforeEach(function() { var data = [ { target: 'test.cpu1', datapoints: [[45, 1234567890], [60, 1234567899]], }, ]; ctx.ctrl.range = { from: moment().valueOf(), to: moment().valueOf() }; ctx.ctrl.onDataReceived(data); }); it('should set datapointsOutside', function() { expect(ctx.ctrl.dataWarning.title).to.be('Data points outside time range'); }); }); describe('when time series are inside range', function() { beforeEach(function() { var range = { from: moment() .subtract(1, 'days') .valueOf(), to: moment().valueOf(), }; var data = [ { target: 'test.cpu1', datapoints: [[45, range.from + 1000], [60, range.from + 10000]], }, ]; ctx.ctrl.range = range; ctx.ctrl.onDataReceived(data); }); it('should set datapointsOutside', function() { expect(ctx.ctrl.dataWarning).to.be(null); }); }); describe('datapointsCount given 2 series', function() { beforeEach(function() { var data = [{ target: 'test.cpu1', datapoints: [] }, { target: 'test.cpu2', datapoints: [] }]; ctx.ctrl.onDataReceived(data); }); it('should set datapointsCount warning', function() { expect(ctx.ctrl.dataWarning.title).to.be('No data points'); }); }); });