datasource_srv_specs.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. define([
  2. 'app/core/config',
  3. 'app/core/services/datasource_srv'
  4. ], function(config) {
  5. 'use strict';
  6. describe('datasource_srv', function() {
  7. var _datasourceSrv;
  8. var metricSources;
  9. var templateSrv = {};
  10. beforeEach(module('grafana.core'));
  11. beforeEach(module(function($provide) {
  12. $provide.value('templateSrv', templateSrv);
  13. }));
  14. beforeEach(module('grafana.services'));
  15. beforeEach(inject(function(datasourceSrv) {
  16. _datasourceSrv = datasourceSrv;
  17. }));
  18. describe('when loading metric sources', function() {
  19. var unsortedDatasources = {
  20. 'mmm': {
  21. type: 'test-db',
  22. meta: { metrics: {m: 1} }
  23. },
  24. '--Mixed--': {
  25. type: 'test-db',
  26. meta: {builtIn: true, metrics: {m: 1} }
  27. },
  28. 'ZZZ': {
  29. type: 'test-db',
  30. meta: {metrics: {m: 1} }
  31. },
  32. 'aaa': {
  33. type: 'test-db',
  34. meta: { metrics: {m: 1} }
  35. },
  36. 'BBB': {
  37. type: 'test-db',
  38. meta: { metrics: {m: 1} }
  39. },
  40. };
  41. beforeEach(function() {
  42. config.datasources = unsortedDatasources;
  43. metricSources = _datasourceSrv.getMetricSources({skipVariables: true});
  44. });
  45. it('should return a list of sources sorted case insensitively with builtin sources last', function() {
  46. expect(metricSources[0].name).to.be('aaa');
  47. expect(metricSources[1].name).to.be('BBB');
  48. expect(metricSources[2].name).to.be('mmm');
  49. expect(metricSources[3].name).to.be('ZZZ');
  50. expect(metricSources[4].name).to.be('--Mixed--');
  51. });
  52. });
  53. });
  54. });