mocks.ts 737 B

123456789101112131415161718192021222324252627
  1. import { DataSourceApi } from '@grafana/ui';
  2. export function makeMockLokiDatasource(labelsAndValues: { [label: string]: string[] }): DataSourceApi {
  3. const labels = Object.keys(labelsAndValues);
  4. return {
  5. metadataRequest: (url: string) => {
  6. let responseData;
  7. if (url === '/api/prom/label') {
  8. responseData = labels;
  9. } else {
  10. const match = url.match(/^\/api\/prom\/label\/(\w*)\/values/);
  11. if (match) {
  12. responseData = labelsAndValues[match[1]];
  13. }
  14. }
  15. if (responseData) {
  16. return {
  17. data: {
  18. data: responseData,
  19. },
  20. };
  21. } else {
  22. throw new Error(`Unexpected url error, ${url}`);
  23. }
  24. },
  25. } as any;
  26. }