Commit 17c03bed by Torkel Ödegaard

Added some unit tests for RowCtrl

parent 4bfc5355
...@@ -24,7 +24,9 @@ define([ ...@@ -24,7 +24,9 @@ define([
return inject(function($controller, $rootScope, $q) { return inject(function($controller, $rootScope, $q) {
self.scope = $rootScope.$new(); self.scope = $rootScope.$new();
self.scope.panel = {}; self.scope.panel = {};
self.scope.row = { panels:[] };
self.scope.filter = new FilterSrvStub(); self.scope.filter = new FilterSrvStub();
$rootScope.colors = []; $rootScope.colors = [];
for (var i = 0; i < 50; i++) { $rootScope.colors.push('#' + i); } for (var i = 0; i < 50; i++) { $rootScope.colors.push('#' + i); }
......
define([
'./helpers',
'controllers/row'
], function(helpers) {
'use strict';
describe('RowCtrl', function() {
var ctx = new helpers.ControllerTestContext();
beforeEach(module('grafana.controllers'));
beforeEach(ctx.providePhase());
beforeEach(ctx.createControllerPhase('RowCtrl'));
describe('when getting rowSpan', function() {
it('should return sum of panels spans', function() {
var spanLeft = ctx.scope.rowSpan({ panels: [{ span: 2 }, { span: 3 }] });
expect(spanLeft).to.be(5);
});
});
describe('when adding panel to row with 12 span panel', function() {
it('should split span in half and add panel with defaults', function() {
ctx.scope.row = { panels: [{ span: 12 }] };
ctx.scope.add_panel_default('graph');
expect(ctx.scope.row.panels[0].span).to.be(6);
expect(ctx.scope.row.panels[1].span).to.be(6);
expect(ctx.scope.row.panels[1].type).to.be('graph');
});
});
describe('when duplicating panel', function() {
it('should try to add it to same row', function() {
var panel = { span: 4, attr: '123' };
ctx.scope.row = { panels: [panel] };
ctx.scope.duplicatePanel(panel, ctx.scope.row);
expect(ctx.scope.row.panels[0].span).to.be(4);
expect(ctx.scope.row.panels[1].span).to.be(4);
expect(ctx.scope.row.panels[1].attr).to.be('123');
});
});
describe('when duplicating panel', function() {
it('should add row if there is no space left', function() {
var panel = { span: 12, attr: '123' };
ctx.scope.row = { panels: [panel] };
ctx.scope.dashboard = { rows: [ctx.scope.row] };
ctx.scope.duplicatePanel(panel, ctx.scope.row);
expect(ctx.scope.row.panels[0].span).to.be(12);
expect(ctx.scope.row.panels.length).to.be(1);
expect(ctx.scope.dashboard.rows[1].panels[0].attr).to.be('123');
});
});
});
});
...@@ -117,6 +117,7 @@ require([ ...@@ -117,6 +117,7 @@ require([
'specs/lexer-specs', 'specs/lexer-specs',
'specs/parser-specs', 'specs/parser-specs',
'specs/gfunc-specs', 'specs/gfunc-specs',
'specs/row-ctrl-specs',
'specs/graphiteTargetCtrl-specs', 'specs/graphiteTargetCtrl-specs',
'specs/influxdb-datasource-specs', 'specs/influxdb-datasource-specs',
'specs/graph-ctrl-specs', 'specs/graph-ctrl-specs',
......
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