fix(templating): fix to datasource variable, was not updated on dashboard load, added unit test for case as well

This commit is contained in:
Torkel Ödegaard
2016-09-28 12:12:38 +02:00
parent 68370ba2bc
commit 599fe49944
2 changed files with 28 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ export class DatasourceVariable implements Variable {
query: string;
options: any;
current: any;
refresh: any;
defaults = {
type: 'datasource',
@@ -20,11 +21,13 @@ export class DatasourceVariable implements Variable {
regex: '',
options: [],
query: '',
refresh: 1,
};
/** @ngInject **/
constructor(private model, private datasourceSrv, private variableSrv) {
assignModelProperties(this, model, this.defaults);
this.refresh = 1;
}
getModel() {

View File

@@ -62,6 +62,7 @@ describe('VariableSrv init', function() {
options: [{text: "test", value: "test"}]
}];
scenario.urlParams["var-apps"] = "new";
scenario.metricSources = [];
});
it('should update current value', () => {
@@ -110,6 +111,30 @@ describe('VariableSrv init', function() {
});
});
describeInitScenario('when datasource variable is initialized', scenario => {
scenario.setup(() => {
scenario.variables = [{
type: 'datasource',
query: 'graphite',
name: 'test',
current: {value: 'backend4_pee', text: 'backend4_pee'},
regex: '/pee$/'
}
];
scenario.metricSources = [
{name: 'backend1', meta: {id: 'influx'}},
{name: 'backend2_pee', meta: {id: 'graphite'}},
{name: 'backend3', meta: {id: 'graphite'}},
{name: 'backend4_pee', meta: {id: 'graphite'}},
];
});
it('should update current value', function() {
var variable = ctx.variableSrv.variables[0];
expect(variable.options.length).to.be(2);
});
});
describeInitScenario('when template variable is present in url multiple times', scenario => {
scenario.setup(() => {
scenario.variables = [{