diff --git a/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.test.tsx b/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.test.tsx index 6187525e22c..10b7832ff05 100644 --- a/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.test.tsx +++ b/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.test.tsx @@ -152,6 +152,8 @@ describe('QueryVariableEditor', () => { }); expect(variable.state.datasource).toEqual({ uid: 'mock-ds-3', type: 'prometheus' }); + expect(variable.state.query).toBe(''); + expect(variable.state.definition).toBe(''); }); it('should update the variable state when changing the query', async () => { diff --git a/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.tsx b/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.tsx index 2a164aa9f0c..c0f64a0cb52 100644 --- a/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.tsx +++ b/public/app/features/dashboard-scene/settings/variables/editors/QueryVariableEditor.tsx @@ -36,6 +36,12 @@ export function QueryVariableEditor({ variable, onRunQuery }: QueryVariableEdito }; const onDataSourceChange = (dsInstanceSettings: DataSourceInstanceSettings) => { const datasource: DataSourceRef = { uid: dsInstanceSettings.uid, type: dsInstanceSettings.type }; + + if (variable.state.datasource && variable.state.datasource.type !== datasource.type) { + variable.setState({ datasource, query: '', definition: '' }); + return; + } + variable.setState({ datasource }); }; const onQueryChange = (query: VariableQueryType) => {