diff --git a/public/app/plugins/datasource/mixed/MixedDataSource.test.ts b/public/app/plugins/datasource/mixed/MixedDataSource.test.ts index df6f9842067..760abbcb8a9 100644 --- a/public/app/plugins/datasource/mixed/MixedDataSource.test.ts +++ b/public/app/plugins/datasource/mixed/MixedDataSource.test.ts @@ -2,6 +2,7 @@ import { LoadingState } from '@grafana/data'; import { lastValueFrom } from 'rxjs'; import { getQueryOptions } from 'test/helpers/getQueryOptions'; import { DatasourceSrvMock, MockObservableDataSourceApi } from 'test/mocks/datasource_srv'; +import { MIXED_DATASOURCE_NAME } from './MixedDataSource'; import { MixedDatasource } from './module'; const defaultDS = new MockObservableDataSourceApi('DefaultDS', [{ data: ['DDD'] }]); @@ -126,4 +127,17 @@ describe('MixedDatasource', () => { expect(results[1].state).toBe(LoadingState.Done); }); }); + + it('should filter out MixedDataSource queries', async () => { + const ds = new MixedDatasource({} as any); + + await expect( + ds.query({ + targets: [{ refId: 'A', datasource: { uid: MIXED_DATASOURCE_NAME, id: 'datasource' } }], + } as any) + ).toEmitValuesWith((results) => { + expect(results).toHaveLength(1); + expect(results[0].data).toHaveLength(0); + }); + }); }); diff --git a/public/app/plugins/datasource/mixed/MixedDataSource.ts b/public/app/plugins/datasource/mixed/MixedDataSource.ts index 63bdfa4ed50..c5b6837216d 100644 --- a/public/app/plugins/datasource/mixed/MixedDataSource.ts +++ b/public/app/plugins/datasource/mixed/MixedDataSource.ts @@ -26,7 +26,7 @@ export class MixedDatasource extends DataSourceApi { query(request: DataQueryRequest): Observable { // Remove any invalid queries const queries = request.targets.filter((t) => { - return t.datasource?.type !== MIXED_DATASOURCE_NAME; + return t.datasource?.uid !== MIXED_DATASOURCE_NAME; }); if (!queries.length) {