|
|
@@ -1,287 +1,287 @@
|
|
|
-import {describe, beforeEach, it, expect, angularMocks} from 'test/lib/common';
|
|
|
-
|
|
|
-import '../dashboard_srv';
|
|
|
-import {DynamicDashboardSrv} from '../dynamic_dashboard_srv';
|
|
|
-
|
|
|
-function dynamicDashScenario(desc, func) {
|
|
|
-
|
|
|
- describe.skip(desc, function() {
|
|
|
- var ctx: any = {};
|
|
|
-
|
|
|
- ctx.setup = function (setupFunc) {
|
|
|
-
|
|
|
- beforeEach(angularMocks.module('grafana.core'));
|
|
|
- beforeEach(angularMocks.module('grafana.services'));
|
|
|
- beforeEach(angularMocks.module(function($provide) {
|
|
|
- $provide.value('contextSrv', {
|
|
|
- user: { timezone: 'utc'}
|
|
|
- });
|
|
|
- }));
|
|
|
-
|
|
|
- beforeEach(angularMocks.inject(function(dashboardSrv) {
|
|
|
- ctx.dashboardSrv = dashboardSrv;
|
|
|
-
|
|
|
- var model = {
|
|
|
- rows: [],
|
|
|
- templating: { list: [] }
|
|
|
- };
|
|
|
-
|
|
|
- setupFunc(model);
|
|
|
- ctx.dash = ctx.dashboardSrv.create(model);
|
|
|
- ctx.dynamicDashboardSrv = new DynamicDashboardSrv();
|
|
|
- ctx.dynamicDashboardSrv.init(ctx.dash);
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- ctx.rows = ctx.dash.rows;
|
|
|
- }));
|
|
|
- };
|
|
|
-
|
|
|
- func(ctx);
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-dynamicDashScenario('given dashboard with panel repeat', function(ctx) {
|
|
|
- ctx.setup(function(dash) {
|
|
|
- dash.rows.push({
|
|
|
- panels: [{id: 2, repeat: 'apps'}]
|
|
|
- });
|
|
|
- dash.templating.list.push({
|
|
|
- name: 'apps',
|
|
|
- current: {
|
|
|
- text: 'se1, se2, se3',
|
|
|
- value: ['se1', 'se2', 'se3']
|
|
|
- },
|
|
|
- options: [
|
|
|
- {text: 'se1', value: 'se1', selected: true},
|
|
|
- {text: 'se2', value: 'se2', selected: true},
|
|
|
- {text: 'se3', value: 'se3', selected: true},
|
|
|
- {text: 'se4', value: 'se4', selected: false}
|
|
|
- ]
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- it('should repeat panel one time', function() {
|
|
|
- expect(ctx.rows[0].panels.length).to.be(3);
|
|
|
- });
|
|
|
-
|
|
|
- it('should mark panel repeated', function() {
|
|
|
- expect(ctx.rows[0].panels[0].repeat).to.be('apps');
|
|
|
- expect(ctx.rows[0].panels[1].repeatPanelId).to.be(2);
|
|
|
- });
|
|
|
-
|
|
|
- it('should set scopedVars on panels', function() {
|
|
|
- expect(ctx.rows[0].panels[0].scopedVars.apps.value).to.be('se1');
|
|
|
- expect(ctx.rows[0].panels[1].scopedVars.apps.value).to.be('se2');
|
|
|
- expect(ctx.rows[0].panels[2].scopedVars.apps.value).to.be('se3');
|
|
|
- });
|
|
|
-
|
|
|
- describe('After a second iteration', function() {
|
|
|
- var repeatedPanelAfterIteration1;
|
|
|
-
|
|
|
- beforeEach(function() {
|
|
|
- repeatedPanelAfterIteration1 = ctx.rows[0].panels[1];
|
|
|
- ctx.rows[0].panels[0].fill = 10;
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- });
|
|
|
-
|
|
|
- it('should have reused same panel instances', function() {
|
|
|
- expect(ctx.rows[0].panels[1]).to.be(repeatedPanelAfterIteration1);
|
|
|
- });
|
|
|
-
|
|
|
- it('reused panel should copy properties from source', function() {
|
|
|
- expect(ctx.rows[0].panels[1].fill).to.be(10);
|
|
|
- });
|
|
|
-
|
|
|
- it('should have same panel count', function() {
|
|
|
- expect(ctx.rows[0].panels.length).to.be(3);
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- describe('After a second iteration with different variable', function() {
|
|
|
- beforeEach(function() {
|
|
|
- ctx.dash.templating.list.push({
|
|
|
- name: 'server',
|
|
|
- current: { text: 'se1, se2, se3', value: ['se1']},
|
|
|
- options: [{text: 'se1', value: 'se1', selected: true}]
|
|
|
- });
|
|
|
- ctx.rows[0].panels[0].repeat = "server";
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- });
|
|
|
-
|
|
|
- it('should remove scopedVars value for last variable', function() {
|
|
|
- expect(ctx.rows[0].panels[0].scopedVars.apps).to.be(undefined);
|
|
|
- });
|
|
|
-
|
|
|
- it('should have new variable value in scopedVars', function() {
|
|
|
- expect(ctx.rows[0].panels[0].scopedVars.server.value).to.be("se1");
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- describe('After a second iteration and selected values reduced', function() {
|
|
|
- beforeEach(function() {
|
|
|
- ctx.dash.templating.list[0].options[1].selected = false;
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- });
|
|
|
-
|
|
|
- it('should clean up repeated panel', function() {
|
|
|
- expect(ctx.rows[0].panels.length).to.be(2);
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- describe('After a second iteration and panel repeat is turned off', function() {
|
|
|
- beforeEach(function() {
|
|
|
- ctx.rows[0].panels[0].repeat = null;
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- });
|
|
|
-
|
|
|
- it('should clean up repeated panel', function() {
|
|
|
- expect(ctx.rows[0].panels.length).to.be(1);
|
|
|
- });
|
|
|
-
|
|
|
- it('should remove scoped vars from reused panel', function() {
|
|
|
- expect(ctx.rows[0].panels[0].scopedVars).to.be(undefined);
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
-});
|
|
|
-
|
|
|
-dynamicDashScenario('given dashboard with row repeat', function(ctx) {
|
|
|
- ctx.setup(function(dash) {
|
|
|
- dash.rows.push({
|
|
|
- repeat: 'servers',
|
|
|
- panels: [{id: 2}]
|
|
|
- });
|
|
|
- dash.rows.push({panels: []});
|
|
|
- dash.templating.list.push({
|
|
|
- name: 'servers',
|
|
|
- current: {
|
|
|
- text: 'se1, se2',
|
|
|
- value: ['se1', 'se2']
|
|
|
- },
|
|
|
- options: [
|
|
|
- {text: 'se1', value: 'se1', selected: true},
|
|
|
- {text: 'se2', value: 'se2', selected: true},
|
|
|
- ]
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- it('should repeat row one time', function() {
|
|
|
- expect(ctx.rows.length).to.be(3);
|
|
|
- });
|
|
|
-
|
|
|
- it('should keep panel ids on first row', function() {
|
|
|
- expect(ctx.rows[0].panels[0].id).to.be(2);
|
|
|
- });
|
|
|
-
|
|
|
- it('should keep first row as repeat', function() {
|
|
|
- expect(ctx.rows[0].repeat).to.be('servers');
|
|
|
- });
|
|
|
-
|
|
|
- it('should clear repeat field on repeated row', function() {
|
|
|
- expect(ctx.rows[1].repeat).to.be(null);
|
|
|
- });
|
|
|
-
|
|
|
- it('should add scopedVars to rows', function() {
|
|
|
- expect(ctx.rows[0].scopedVars.servers.value).to.be('se1');
|
|
|
- expect(ctx.rows[1].scopedVars.servers.value).to.be('se2');
|
|
|
- });
|
|
|
-
|
|
|
- it('should generate a repeartRowId based on repeat row index', function() {
|
|
|
- expect(ctx.rows[1].repeatRowId).to.be(1);
|
|
|
- expect(ctx.rows[1].repeatIteration).to.be(ctx.dynamicDashboardSrv.iteration);
|
|
|
- });
|
|
|
-
|
|
|
- it('should set scopedVars on row panels', function() {
|
|
|
- expect(ctx.rows[0].panels[0].scopedVars.servers.value).to.be('se1');
|
|
|
- expect(ctx.rows[1].panels[0].scopedVars.servers.value).to.be('se2');
|
|
|
- });
|
|
|
-
|
|
|
- describe('After a second iteration', function() {
|
|
|
- var repeatedRowAfterFirstIteration;
|
|
|
-
|
|
|
- beforeEach(function() {
|
|
|
- repeatedRowAfterFirstIteration = ctx.rows[1];
|
|
|
- ctx.rows[0].height = 500;
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- });
|
|
|
-
|
|
|
- it('should still only have 2 rows', function() {
|
|
|
- expect(ctx.rows.length).to.be(3);
|
|
|
- });
|
|
|
-
|
|
|
- it.skip('should have updated props from source', function() {
|
|
|
- expect(ctx.rows[1].height).to.be(500);
|
|
|
- });
|
|
|
-
|
|
|
- it('should reuse row instance', function() {
|
|
|
- expect(ctx.rows[1]).to.be(repeatedRowAfterFirstIteration);
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- describe('After a second iteration and selected values reduced', function() {
|
|
|
- beforeEach(function() {
|
|
|
- ctx.dash.templating.list[0].options[1].selected = false;
|
|
|
- ctx.dynamicDashboardSrv.process();
|
|
|
- });
|
|
|
-
|
|
|
- it('should remove repeated second row', function() {
|
|
|
- expect(ctx.rows.length).to.be(2);
|
|
|
- });
|
|
|
- });
|
|
|
-});
|
|
|
-
|
|
|
-dynamicDashScenario('given dashboard with row repeat and panel repeat', function(ctx) {
|
|
|
- ctx.setup(function(dash) {
|
|
|
- dash.rows.push({
|
|
|
- repeat: 'servers',
|
|
|
- panels: [{id: 2, repeat: 'metric'}]
|
|
|
- });
|
|
|
- dash.templating.list.push({
|
|
|
- name: 'servers',
|
|
|
- current: { text: 'se1, se2', value: ['se1', 'se2'] },
|
|
|
- options: [
|
|
|
- {text: 'se1', value: 'se1', selected: true},
|
|
|
- {text: 'se2', value: 'se2', selected: true},
|
|
|
- ]
|
|
|
- });
|
|
|
- dash.templating.list.push({
|
|
|
- name: 'metric',
|
|
|
- current: { text: 'm1, m2', value: ['m1', 'm2'] },
|
|
|
- options: [
|
|
|
- {text: 'm1', value: 'm1', selected: true},
|
|
|
- {text: 'm2', value: 'm2', selected: true},
|
|
|
- ]
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- it('should repeat row one time', function() {
|
|
|
- expect(ctx.rows.length).to.be(2);
|
|
|
- });
|
|
|
-
|
|
|
- it('should repeat panel on both rows', function() {
|
|
|
- expect(ctx.rows[0].panels.length).to.be(2);
|
|
|
- expect(ctx.rows[1].panels.length).to.be(2);
|
|
|
- });
|
|
|
-
|
|
|
- it('should keep panel ids on first row', function() {
|
|
|
- expect(ctx.rows[0].panels[0].id).to.be(2);
|
|
|
- });
|
|
|
-
|
|
|
- it('should mark second row as repeated', function() {
|
|
|
- expect(ctx.rows[0].repeat).to.be('servers');
|
|
|
- });
|
|
|
-
|
|
|
- it('should clear repeat field on repeated row', function() {
|
|
|
- expect(ctx.rows[1].repeat).to.be(null);
|
|
|
- });
|
|
|
-
|
|
|
- it('should generate a repeartRowId based on repeat row index', function() {
|
|
|
- expect(ctx.rows[1].repeatRowId).to.be(1);
|
|
|
- });
|
|
|
-
|
|
|
- it('should set scopedVars on row panels', function() {
|
|
|
- expect(ctx.rows[0].panels[0].scopedVars.servers.value).to.be('se1');
|
|
|
- expect(ctx.rows[1].panels[0].scopedVars.servers.value).to.be('se2');
|
|
|
- });
|
|
|
-
|
|
|
-});
|
|
|
+// import {describe, beforeEach, it, expect, angularMocks} from 'test/lib/common';
|
|
|
+//
|
|
|
+// import '../dashboard_srv';
|
|
|
+// import {DynamicDashboardSrv} from '../dynamic_dashboard_srv';
|
|
|
+//
|
|
|
+// function dynamicDashScenario(desc, func) {
|
|
|
+//
|
|
|
+// describe.skip(desc, function() {
|
|
|
+// var ctx: any = {};
|
|
|
+//
|
|
|
+// ctx.setup = function (setupFunc) {
|
|
|
+//
|
|
|
+// beforeEach(angularMocks.module('grafana.core'));
|
|
|
+// beforeEach(angularMocks.module('grafana.services'));
|
|
|
+// beforeEach(angularMocks.module(function($provide) {
|
|
|
+// $provide.value('contextSrv', {
|
|
|
+// user: { timezone: 'utc'}
|
|
|
+// });
|
|
|
+// }));
|
|
|
+//
|
|
|
+// beforeEach(angularMocks.inject(function(dashboardSrv) {
|
|
|
+// ctx.dashboardSrv = dashboardSrv;
|
|
|
+//
|
|
|
+// var model = {
|
|
|
+// rows: [],
|
|
|
+// templating: { list: [] }
|
|
|
+// };
|
|
|
+//
|
|
|
+// setupFunc(model);
|
|
|
+// ctx.dash = ctx.dashboardSrv.create(model);
|
|
|
+// ctx.dynamicDashboardSrv = new DynamicDashboardSrv();
|
|
|
+// ctx.dynamicDashboardSrv.init(ctx.dash);
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// ctx.rows = ctx.dash.rows;
|
|
|
+// }));
|
|
|
+// };
|
|
|
+//
|
|
|
+// func(ctx);
|
|
|
+// });
|
|
|
+// }
|
|
|
+//
|
|
|
+// dynamicDashScenario('given dashboard with panel repeat', function(ctx) {
|
|
|
+// ctx.setup(function(dash) {
|
|
|
+// dash.rows.push({
|
|
|
+// panels: [{id: 2, repeat: 'apps'}]
|
|
|
+// });
|
|
|
+// dash.templating.list.push({
|
|
|
+// name: 'apps',
|
|
|
+// current: {
|
|
|
+// text: 'se1, se2, se3',
|
|
|
+// value: ['se1', 'se2', 'se3']
|
|
|
+// },
|
|
|
+// options: [
|
|
|
+// {text: 'se1', value: 'se1', selected: true},
|
|
|
+// {text: 'se2', value: 'se2', selected: true},
|
|
|
+// {text: 'se3', value: 'se3', selected: true},
|
|
|
+// {text: 'se4', value: 'se4', selected: false}
|
|
|
+// ]
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should repeat panel one time', function() {
|
|
|
+// expect(ctx.rows[0].panels.length).to.be(3);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should mark panel repeated', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].repeat).to.be('apps');
|
|
|
+// expect(ctx.rows[0].panels[1].repeatPanelId).to.be(2);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should set scopedVars on panels', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].scopedVars.apps.value).to.be('se1');
|
|
|
+// expect(ctx.rows[0].panels[1].scopedVars.apps.value).to.be('se2');
|
|
|
+// expect(ctx.rows[0].panels[2].scopedVars.apps.value).to.be('se3');
|
|
|
+// });
|
|
|
+//
|
|
|
+// describe('After a second iteration', function() {
|
|
|
+// var repeatedPanelAfterIteration1;
|
|
|
+//
|
|
|
+// beforeEach(function() {
|
|
|
+// repeatedPanelAfterIteration1 = ctx.rows[0].panels[1];
|
|
|
+// ctx.rows[0].panels[0].fill = 10;
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should have reused same panel instances', function() {
|
|
|
+// expect(ctx.rows[0].panels[1]).to.be(repeatedPanelAfterIteration1);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('reused panel should copy properties from source', function() {
|
|
|
+// expect(ctx.rows[0].panels[1].fill).to.be(10);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should have same panel count', function() {
|
|
|
+// expect(ctx.rows[0].panels.length).to.be(3);
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// describe('After a second iteration with different variable', function() {
|
|
|
+// beforeEach(function() {
|
|
|
+// ctx.dash.templating.list.push({
|
|
|
+// name: 'server',
|
|
|
+// current: { text: 'se1, se2, se3', value: ['se1']},
|
|
|
+// options: [{text: 'se1', value: 'se1', selected: true}]
|
|
|
+// });
|
|
|
+// ctx.rows[0].panels[0].repeat = "server";
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should remove scopedVars value for last variable', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].scopedVars.apps).to.be(undefined);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should have new variable value in scopedVars', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].scopedVars.server.value).to.be("se1");
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// describe('After a second iteration and selected values reduced', function() {
|
|
|
+// beforeEach(function() {
|
|
|
+// ctx.dash.templating.list[0].options[1].selected = false;
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should clean up repeated panel', function() {
|
|
|
+// expect(ctx.rows[0].panels.length).to.be(2);
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// describe('After a second iteration and panel repeat is turned off', function() {
|
|
|
+// beforeEach(function() {
|
|
|
+// ctx.rows[0].panels[0].repeat = null;
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should clean up repeated panel', function() {
|
|
|
+// expect(ctx.rows[0].panels.length).to.be(1);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should remove scoped vars from reused panel', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].scopedVars).to.be(undefined);
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// });
|
|
|
+//
|
|
|
+// dynamicDashScenario('given dashboard with row repeat', function(ctx) {
|
|
|
+// ctx.setup(function(dash) {
|
|
|
+// dash.rows.push({
|
|
|
+// repeat: 'servers',
|
|
|
+// panels: [{id: 2}]
|
|
|
+// });
|
|
|
+// dash.rows.push({panels: []});
|
|
|
+// dash.templating.list.push({
|
|
|
+// name: 'servers',
|
|
|
+// current: {
|
|
|
+// text: 'se1, se2',
|
|
|
+// value: ['se1', 'se2']
|
|
|
+// },
|
|
|
+// options: [
|
|
|
+// {text: 'se1', value: 'se1', selected: true},
|
|
|
+// {text: 'se2', value: 'se2', selected: true},
|
|
|
+// ]
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should repeat row one time', function() {
|
|
|
+// expect(ctx.rows.length).to.be(3);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should keep panel ids on first row', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].id).to.be(2);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should keep first row as repeat', function() {
|
|
|
+// expect(ctx.rows[0].repeat).to.be('servers');
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should clear repeat field on repeated row', function() {
|
|
|
+// expect(ctx.rows[1].repeat).to.be(null);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should add scopedVars to rows', function() {
|
|
|
+// expect(ctx.rows[0].scopedVars.servers.value).to.be('se1');
|
|
|
+// expect(ctx.rows[1].scopedVars.servers.value).to.be('se2');
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should generate a repeartRowId based on repeat row index', function() {
|
|
|
+// expect(ctx.rows[1].repeatRowId).to.be(1);
|
|
|
+// expect(ctx.rows[1].repeatIteration).to.be(ctx.dynamicDashboardSrv.iteration);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should set scopedVars on row panels', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].scopedVars.servers.value).to.be('se1');
|
|
|
+// expect(ctx.rows[1].panels[0].scopedVars.servers.value).to.be('se2');
|
|
|
+// });
|
|
|
+//
|
|
|
+// describe('After a second iteration', function() {
|
|
|
+// var repeatedRowAfterFirstIteration;
|
|
|
+//
|
|
|
+// beforeEach(function() {
|
|
|
+// repeatedRowAfterFirstIteration = ctx.rows[1];
|
|
|
+// ctx.rows[0].height = 500;
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should still only have 2 rows', function() {
|
|
|
+// expect(ctx.rows.length).to.be(3);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it.skip('should have updated props from source', function() {
|
|
|
+// expect(ctx.rows[1].height).to.be(500);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should reuse row instance', function() {
|
|
|
+// expect(ctx.rows[1]).to.be(repeatedRowAfterFirstIteration);
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// describe('After a second iteration and selected values reduced', function() {
|
|
|
+// beforeEach(function() {
|
|
|
+// ctx.dash.templating.list[0].options[1].selected = false;
|
|
|
+// ctx.dynamicDashboardSrv.process();
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should remove repeated second row', function() {
|
|
|
+// expect(ctx.rows.length).to.be(2);
|
|
|
+// });
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// dynamicDashScenario('given dashboard with row repeat and panel repeat', function(ctx) {
|
|
|
+// ctx.setup(function(dash) {
|
|
|
+// dash.rows.push({
|
|
|
+// repeat: 'servers',
|
|
|
+// panels: [{id: 2, repeat: 'metric'}]
|
|
|
+// });
|
|
|
+// dash.templating.list.push({
|
|
|
+// name: 'servers',
|
|
|
+// current: { text: 'se1, se2', value: ['se1', 'se2'] },
|
|
|
+// options: [
|
|
|
+// {text: 'se1', value: 'se1', selected: true},
|
|
|
+// {text: 'se2', value: 'se2', selected: true},
|
|
|
+// ]
|
|
|
+// });
|
|
|
+// dash.templating.list.push({
|
|
|
+// name: 'metric',
|
|
|
+// current: { text: 'm1, m2', value: ['m1', 'm2'] },
|
|
|
+// options: [
|
|
|
+// {text: 'm1', value: 'm1', selected: true},
|
|
|
+// {text: 'm2', value: 'm2', selected: true},
|
|
|
+// ]
|
|
|
+// });
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should repeat row one time', function() {
|
|
|
+// expect(ctx.rows.length).to.be(2);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should repeat panel on both rows', function() {
|
|
|
+// expect(ctx.rows[0].panels.length).to.be(2);
|
|
|
+// expect(ctx.rows[1].panels.length).to.be(2);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should keep panel ids on first row', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].id).to.be(2);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should mark second row as repeated', function() {
|
|
|
+// expect(ctx.rows[0].repeat).to.be('servers');
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should clear repeat field on repeated row', function() {
|
|
|
+// expect(ctx.rows[1].repeat).to.be(null);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should generate a repeartRowId based on repeat row index', function() {
|
|
|
+// expect(ctx.rows[1].repeatRowId).to.be(1);
|
|
|
+// });
|
|
|
+//
|
|
|
+// it('should set scopedVars on row panels', function() {
|
|
|
+// expect(ctx.rows[0].panels[0].scopedVars.servers.value).to.be('se1');
|
|
|
+// expect(ctx.rows[1].panels[0].scopedVars.servers.value).to.be('se2');
|
|
|
+// });
|
|
|
+//
|
|
|
+// });
|
|
|
|