Files
grafana/public/app/features/plugins/specs/datasource_srv_specs.ts

65 lines
1.9 KiB
TypeScript

import { describe, beforeEach, it, expect, angularMocks } from 'test/lib/common';
import config from 'app/core/config';
import 'app/features/plugins/datasource_srv';
describe('datasource_srv', function() {
var _datasourceSrv;
var metricSources;
var templateSrv = {};
beforeEach(angularMocks.module('grafana.core'));
beforeEach(
angularMocks.module(function($provide) {
$provide.value('templateSrv', templateSrv);
})
);
beforeEach(angularMocks.module('grafana.services'));
beforeEach(
angularMocks.inject(function(datasourceSrv) {
_datasourceSrv = datasourceSrv;
})
);
describe('when loading metric sources', function() {
var unsortedDatasources = {
mmm: {
type: 'test-db',
meta: { metrics: { m: 1 } },
},
'--Grafana--': {
type: 'grafana',
meta: { builtIn: true, metrics: { m: 1 }, id: 'grafana' },
},
'--Mixed--': {
type: 'test-db',
meta: { builtIn: true, metrics: { m: 1 }, id: 'mixed' },
},
ZZZ: {
type: 'test-db',
meta: { metrics: { m: 1 } },
},
aaa: {
type: 'test-db',
meta: { metrics: { m: 1 } },
},
BBB: {
type: 'test-db',
meta: { metrics: { m: 1 } },
},
};
beforeEach(function() {
config.datasources = unsortedDatasources;
metricSources = _datasourceSrv.getMetricSources({ skipVariables: true });
});
it('should return a list of sources sorted case insensitively with builtin sources last', function() {
expect(metricSources[0].name).to.be('aaa');
expect(metricSources[1].name).to.be('BBB');
expect(metricSources[2].name).to.be('mmm');
expect(metricSources[3].name).to.be('ZZZ');
expect(metricSources[4].name).to.be('--Grafana--');
expect(metricSources[5].name).to.be('--Mixed--');
});
});
});