datasource_srv.ts 1016 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { DataSourceApi, DataQueryRequest, DataQueryResponse } from '@grafana/ui';
  2. export class DatasourceSrvMock {
  3. constructor(private defaultDS: DataSourceApi, private datasources: { [name: string]: DataSourceApi }) {
  4. //
  5. }
  6. get(name?: string): Promise<DataSourceApi> {
  7. if (!name) {
  8. return Promise.resolve(this.defaultDS);
  9. }
  10. const ds = this.datasources[name];
  11. if (ds) {
  12. return Promise.resolve(ds);
  13. }
  14. return Promise.reject('Unknown Datasource: ' + name);
  15. }
  16. }
  17. export class MockDataSourceApi implements DataSourceApi {
  18. name: string;
  19. result: DataQueryResponse = { data: [] };
  20. queryResolver: Promise<DataQueryResponse>;
  21. constructor(DataQueryResponse, name?: string) {
  22. this.name = name ? name : 'MockDataSourceApi';
  23. }
  24. query(request: DataQueryRequest): Promise<DataQueryResponse> {
  25. if (this.queryResolver) {
  26. return this.queryResolver;
  27. }
  28. return Promise.resolve(this.result);
  29. }
  30. testDatasource() {
  31. return Promise.resolve();
  32. }
  33. }