diff --git a/public/app/features/dashboard/state/PanelQueryState.test.ts b/public/app/features/dashboard/state/PanelQueryState.test.ts index 486d6f29e03..8d9a028ae3d 100644 --- a/public/app/features/dashboard/state/PanelQueryState.test.ts +++ b/public/app/features/dashboard/state/PanelQueryState.test.ts @@ -34,14 +34,22 @@ describe('PanelQueryState', () => { expect(empty.series.length).toBe(0); expect(hasRun).toBeFalsy(); - empty = await state.execute( - ds, - getQueryOptions({ targets: [{ hide: true, refId: 'X' }, { hide: true, refId: 'Y' }, { hide: true, refId: 'Z' }] }) - ); + const query = getQueryOptions({ + targets: [{ hide: true, refId: 'X' }, { hide: true, refId: 'Y' }, { hide: true, refId: 'Z' }], + }); + + empty = await state.execute(ds, query); // should not run any hidden queries' expect(state.getActiveRunner()).toBeFalsy(); expect(empty.series.length).toBe(0); expect(hasRun).toBeFalsy(); + + // Check for the same query + expect(state.isSameQuery(ds, query)).toBeTruthy(); + + // Check for differnet queries + expect(state.isSameQuery(new MockDataSourceApi('test'), query)).toBeFalsy(); + expect(state.isSameQuery(ds, getQueryOptions({ targets: [{ refId: 'differnet' }] }))).toBeFalsy(); }); }); diff --git a/public/app/features/dashboard/state/PanelQueryState.ts b/public/app/features/dashboard/state/PanelQueryState.ts index 69f9aeb71e2..40bdc85d18f 100644 --- a/public/app/features/dashboard/state/PanelQueryState.ts +++ b/public/app/features/dashboard/state/PanelQueryState.ts @@ -95,6 +95,7 @@ export class PanelQueryState { execute(ds: DataSourceApi, req: DataQueryRequest): Promise { this.request = req; + this.datasource = ds; // Return early if there are no queries to run if (!req.targets.length) {