datasource.test.ts 3.1 KB

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