mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Use original query time range when duplicating a query (#54805)
* Use original query time range when duplicating it If there's no time range, then assign a default one * Add tests * Import default relative time range from common lib
This commit is contained in:
parent
096fc76e23
commit
d3a70de962
@ -0,0 +1,49 @@
|
||||
import { getDefaultRelativeTimeRange } from '@grafana/data';
|
||||
|
||||
import { QueryEditor } from './QueryEditor';
|
||||
|
||||
const onChangeMock = jest.fn();
|
||||
describe('Query Editor', () => {
|
||||
it('should maintain the original query time range when duplicating it', () => {
|
||||
const query = {
|
||||
refId: 'A',
|
||||
queryType: '',
|
||||
datasourceUid: '',
|
||||
model: { refId: 'A', hide: false },
|
||||
relativeTimeRange: { from: 100, to: 0 },
|
||||
};
|
||||
const queryEditor = new QueryEditor({
|
||||
onChange: onChangeMock,
|
||||
value: [query],
|
||||
});
|
||||
|
||||
queryEditor.onDuplicateQuery(query);
|
||||
|
||||
expect(onChangeMock).toHaveBeenCalledWith([
|
||||
query,
|
||||
{ ...query, ...{ refId: 'B', model: { refId: 'B', hide: false } } },
|
||||
]);
|
||||
});
|
||||
|
||||
it('should use the default query time range if none is set when duplicating a query', () => {
|
||||
const query = {
|
||||
refId: 'A',
|
||||
queryType: '',
|
||||
datasourceUid: '',
|
||||
model: { refId: 'A', hide: false },
|
||||
};
|
||||
const queryEditor = new QueryEditor({
|
||||
onChange: onChangeMock,
|
||||
value: [query],
|
||||
});
|
||||
|
||||
queryEditor.onDuplicateQuery(query);
|
||||
|
||||
const defaultRange = getDefaultRelativeTimeRange();
|
||||
|
||||
expect(onChangeMock).toHaveBeenCalledWith([
|
||||
query,
|
||||
{ ...query, ...{ refId: 'B', relativeTimeRange: defaultRange, model: { refId: 'B', hide: false } } },
|
||||
]);
|
||||
});
|
||||
});
|
@ -180,7 +180,10 @@ export class QueryEditor extends PureComponent<Props, State> {
|
||||
}
|
||||
}
|
||||
|
||||
const addQuery = (queries: AlertQuery[], queryToAdd: Pick<AlertQuery, 'model' | 'datasourceUid'>): AlertQuery[] => {
|
||||
const addQuery = (
|
||||
queries: AlertQuery[],
|
||||
queryToAdd: Pick<AlertQuery, 'model' | 'datasourceUid' | 'relativeTimeRange'>
|
||||
): AlertQuery[] => {
|
||||
const refId = getNextRefIdChar(queries);
|
||||
|
||||
const query: AlertQuery = {
|
||||
@ -192,7 +195,7 @@ const addQuery = (queries: AlertQuery[], queryToAdd: Pick<AlertQuery, 'model' |
|
||||
hide: false,
|
||||
refId,
|
||||
},
|
||||
relativeTimeRange: defaultTimeRange(queryToAdd.model),
|
||||
relativeTimeRange: queryToAdd.relativeTimeRange || defaultTimeRange(queryToAdd.model),
|
||||
};
|
||||
|
||||
return [...queries, query];
|
||||
|
Loading…
Reference in New Issue
Block a user