datasource.test.ts 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import OpenTsDatasource from '../datasource';
  2. import $q from 'q';
  3. describe('opentsdb', () => {
  4. const ctx = {
  5. backendSrv: {},
  6. ds: {},
  7. templateSrv: {
  8. replace: str => str,
  9. },
  10. } as any;
  11. const instanceSettings = { url: '', jsonData: { tsdbVersion: 1 } };
  12. beforeEach(() => {
  13. ctx.ctrl = new OpenTsDatasource(instanceSettings, $q, ctx.backendSrv, ctx.templateSrv);
  14. });
  15. describe('When performing metricFindQuery', () => {
  16. let results;
  17. let requestOptions;
  18. beforeEach(async () => {
  19. ctx.backendSrv.datasourceRequest = await function(options) {
  20. requestOptions = options;
  21. return Promise.resolve({
  22. data: [{ target: 'prod1.count', datapoints: [[10, 1], [12, 1]] }],
  23. });
  24. };
  25. });
  26. it('metrics() should generate api suggest query', () => {
  27. ctx.ctrl.metricFindQuery('metrics(pew)').then(function(data) {
  28. results = data;
  29. });
  30. expect(requestOptions.url).toBe('/api/suggest');
  31. expect(requestOptions.params.type).toBe('metrics');
  32. expect(requestOptions.params.q).toBe('pew');
  33. expect(results).not.toBe(null);
  34. });
  35. it('tag_names(cpu) should generate lookup query', () => {
  36. ctx.ctrl.metricFindQuery('tag_names(cpu)').then(function(data) {
  37. results = data;
  38. });
  39. expect(requestOptions.url).toBe('/api/search/lookup');
  40. expect(requestOptions.params.m).toBe('cpu');
  41. });
  42. it('tag_values(cpu, test) should generate lookup query', () => {
  43. ctx.ctrl.metricFindQuery('tag_values(cpu, hostname)').then(function(data) {
  44. results = data;
  45. });
  46. expect(requestOptions.url).toBe('/api/search/lookup');
  47. expect(requestOptions.params.m).toBe('cpu{hostname=*}');
  48. });
  49. it('tag_values(cpu, test) should generate lookup query', () => {
  50. ctx.ctrl.metricFindQuery('tag_values(cpu, hostname, env=$env)').then(function(data) {
  51. results = data;
  52. });
  53. expect(requestOptions.url).toBe('/api/search/lookup');
  54. expect(requestOptions.params.m).toBe('cpu{hostname=*,env=$env}');
  55. });
  56. it('tag_values(cpu, test) should generate lookup query', () => {
  57. ctx.ctrl.metricFindQuery('tag_values(cpu, hostname, env=$env, region=$region)').then(function(data) {
  58. results = data;
  59. });
  60. expect(requestOptions.url).toBe('/api/search/lookup');
  61. expect(requestOptions.params.m).toBe('cpu{hostname=*,env=$env,region=$region}');
  62. });
  63. it('suggest_tagk() should generate api suggest query', () => {
  64. ctx.ctrl.metricFindQuery('suggest_tagk(foo)').then(function(data) {
  65. results = data;
  66. });
  67. expect(requestOptions.url).toBe('/api/suggest');
  68. expect(requestOptions.params.type).toBe('tagk');
  69. expect(requestOptions.params.q).toBe('foo');
  70. });
  71. it('suggest_tagv() should generate api suggest query', () => {
  72. ctx.ctrl.metricFindQuery('suggest_tagv(bar)').then(function(data) {
  73. results = data;
  74. });
  75. expect(requestOptions.url).toBe('/api/suggest');
  76. expect(requestOptions.params.type).toBe('tagv');
  77. expect(requestOptions.params.q).toBe('bar');
  78. });
  79. });
  80. });