2025-04-01 10:38:02 +09:00

23 lines
894 B
TypeScript

import { keyBy } from 'lodash';
import { DataSourceInstanceSettings } from '@grafana/data';
import { config, setDataSourceSrv } from '@grafana/runtime';
import { DatasourceSrv } from 'app/features/plugins/datasource_srv';
/**
* Sets up the data sources for the tests.
* Sets up both config object from grafana/runtime and the data source server
* @param configs data source instance settings. Use **mockDataSource** to create mock settings
*/
export function setupDataSources(...configs: DataSourceInstanceSettings[]) {
const dataSourceSrv = new DatasourceSrv();
const datasourceSettings = keyBy(configs, (c) => c.name);
const defaultDatasource = configs.find((c) => c.isDefault);
config.datasources = datasourceSettings;
dataSourceSrv.init(config.datasources, defaultDatasource?.name || config.defaultDatasource);
setDataSourceSrv(dataSourceSrv);
return dataSourceSrv;
}