mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Explore: Run remaining queries when one is removed from a pane (#69643)
This commit is contained in:
parent
f20a8eb2a7
commit
cefcbfa5ed
@ -16,7 +16,7 @@ import {
|
||||
} from '@grafana/data';
|
||||
import { config } from '@grafana/runtime';
|
||||
import { DataQuery, DataSourceRef } from '@grafana/schema';
|
||||
import { ExploreId, ExploreItemState, StoreState, ThunkDispatch } from 'app/types';
|
||||
import { createAsyncThunk, ExploreId, ExploreItemState, StoreState, ThunkDispatch } from 'app/types';
|
||||
|
||||
import { reducerTester } from '../../../../test/core/redux/reducerTester';
|
||||
import { configureStore } from '../../../store/configureStore';
|
||||
@ -246,12 +246,12 @@ describe('running queries', () => {
|
||||
});
|
||||
|
||||
describe('changeQueries', () => {
|
||||
afterEach(() => {
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
// Due to how spyOn works (it removes `type`, `match` and `toString` from the spied function, on which we rely on in the reducer),
|
||||
// we are repeating the following tests twice, once to chck the resulting state and once to check that the correct actions are dispatched.
|
||||
describe('calls the correct actions', () => {
|
||||
afterEach(() => {
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
it('should import queries when datasource is changed', async () => {
|
||||
jest.spyOn(actions, 'importQueries');
|
||||
jest.spyOn(actions, 'changeQueriesAction');
|
||||
@ -375,6 +375,37 @@ describe('changeQueries', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('runs remaining queries when one query is removed', async () => {
|
||||
jest.spyOn(actions, 'runQueries').mockImplementation(createAsyncThunk('@explore/runQueries', () => {}));
|
||||
|
||||
const originalQueries = [
|
||||
{ refId: 'A', datasource: datasources[0].getRef() },
|
||||
{ refId: 'B', datasource: datasources[0].getRef() },
|
||||
];
|
||||
|
||||
const { dispatch } = configureStore({
|
||||
...defaultInitialState,
|
||||
explore: {
|
||||
panes: {
|
||||
left: {
|
||||
...defaultInitialState.explore.panes.left,
|
||||
datasourceInstance: datasources[0],
|
||||
queries: originalQueries,
|
||||
},
|
||||
},
|
||||
},
|
||||
} as unknown as Partial<StoreState>);
|
||||
|
||||
await dispatch(
|
||||
changeQueries({
|
||||
queries: [originalQueries[0]],
|
||||
exploreId: ExploreId.left,
|
||||
})
|
||||
);
|
||||
|
||||
expect(actions.runQueries).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('importing queries', () => {
|
||||
|
Loading…
Reference in New Issue
Block a user