diff --git a/public/app/features/plugins/datasource_srv.ts b/public/app/features/plugins/datasource_srv.ts index 4ac58e3adfd..a71f46e5f9b 100644 --- a/public/app/features/plugins/datasource_srv.ts +++ b/public/app/features/plugins/datasource_srv.ts @@ -299,7 +299,7 @@ export class DatasourceSrv implements DataSourceService { if (!filters.tracing) { const grafanaInstanceSettings = this.getInstanceSettings('-- Grafana --'); - if (grafanaInstanceSettings) { + if (grafanaInstanceSettings && filters.filter?.(grafanaInstanceSettings) !== false) { base.push(grafanaInstanceSettings); } } diff --git a/public/app/features/plugins/tests/datasource_srv.test.ts b/public/app/features/plugins/tests/datasource_srv.test.ts index f9ec6eba97e..9d9dac7b553 100644 --- a/public/app/features/plugins/tests/datasource_srv.test.ts +++ b/public/app/features/plugins/tests/datasource_srv.test.ts @@ -297,6 +297,11 @@ describe('datasource_srv', () => { expect(list[2].name).toBe('${datasource}'); }); + it('Should filter out the -- Grafana -- datasource', () => { + const list = dataSourceSrv.getList({ filter: (x) => x.name !== '-- Grafana --' }); + expect(list.find((x) => x.name === '-- Grafana --')).toBeUndefined(); + }); + it('Can get list of data sources with tracing: true', () => { const list = dataSourceSrv.getList({ tracing: true }); expect(list[0].name).toBe('Jaeger');