diff --git a/public/app/plugins/datasource/dashboard/datasource.test.ts b/public/app/plugins/datasource/dashboard/datasource.test.ts index 97a382f5fdb..76412500540 100644 --- a/public/app/plugins/datasource/dashboard/datasource.test.ts +++ b/public/app/plugins/datasource/dashboard/datasource.test.ts @@ -66,12 +66,16 @@ describe('DashboardDatasource', () => { }); it('Can subscribe to panel data + transforms', async () => { + jest.useFakeTimers(); + const { observable } = setup({ refId: 'A', panelId: 1, withTransforms: true }); let rsp: DataQueryResponse | undefined; observable.subscribe({ next: (data) => (rsp = data) }); + jest.runAllTimers(); + expect(rsp?.data[0].fields[1].values).toEqual([3]); }); diff --git a/public/app/plugins/datasource/dashboard/datasource.ts b/public/app/plugins/datasource/dashboard/datasource.ts index b5bb41998be..a9e34586d4f 100644 --- a/public/app/plugins/datasource/dashboard/datasource.ts +++ b/public/app/plugins/datasource/dashboard/datasource.ts @@ -1,4 +1,4 @@ -import { Observable, debounce, defer, finalize, first, interval, map, of } from 'rxjs'; +import { Observable, debounce, debounceTime, defer, finalize, first, interval, map, of } from 'rxjs'; import { DataSourceApi, @@ -79,6 +79,7 @@ export class DashboardDatasource extends DataSourceApi { const cleanUp = activateSceneObjectAndParentTree(sourceDataProvider!); return sourceDataProvider!.getResultsStream!().pipe( + debounceTime(50), map((result) => { return { data: this.getDataFramesForQueryTopic(result.data, query),