QueryStats: Fix comparison of timeranges (#65025)

* fix timerange comparison

* remove import
This commit is contained in:
Sven Grossmann 2023-03-20 10:04:41 +01:00 committed by GitHub
parent 67fe282f7e
commit 6ae373b8c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 12 deletions

View File

@ -1,4 +1,4 @@
import { TimeRange } from '@grafana/data';
import { dateTime, getDefaultTimeRange } from '@grafana/data';
import { createLokiDatasource } from '../mocks';
@ -8,23 +8,25 @@ describe('shouldUpdateStats', () => {
it('should return true if the query has changed', () => {
const query = '{job="grafana"}';
const prevQuery = '{job="not-grafana"}';
const timerange = { raw: { from: 'now-1h', to: 'now' } } as TimeRange;
const prevTimerange = { raw: { from: 'now-1h', to: 'now' } } as TimeRange;
const timerange = getDefaultTimeRange();
const prevTimerange = timerange;
expect(shouldUpdateStats(query, prevQuery, timerange, prevTimerange)).toBe(true);
});
it('should return true if the timerange has changed', () => {
const query = '{job="grafana"}';
const prevQuery = '{job="grafana"}';
const timerange = { raw: { from: 'now-1h', to: 'now' } } as TimeRange;
const prevTimerange = { raw: { from: 'now-2h', to: 'now' } } as TimeRange;
const timerange = getDefaultTimeRange();
timerange.from = dateTime(Date.now() - 1000000);
const prevTimerange = getDefaultTimeRange();
expect(shouldUpdateStats(query, prevQuery, timerange, prevTimerange)).toBe(true);
});
it('should return false if the query and timerange have not changed', () => {
const query = '{job="grafana"}';
const prevQuery = '{job="grafana"}';
const timerange = { raw: { from: 'now-1h', to: 'now' } } as TimeRange;
const prevTimerange = { raw: { from: 'now-1h', to: 'now' } } as TimeRange;
const timerange = getDefaultTimeRange();
const prevTimerange = timerange;
expect(shouldUpdateStats(query, prevQuery, timerange, prevTimerange)).toBe(false);
});
});

View File

@ -18,11 +18,7 @@ export function shouldUpdateStats(
timerange: TimeRange,
prevTimerange: TimeRange | undefined
): boolean {
if (
query === prevQuery &&
timerange.raw.from === prevTimerange?.raw.from &&
timerange.raw.to === prevTimerange?.raw.to
) {
if (query === prevQuery && timerange.from.isSame(prevTimerange?.from) && timerange.to.isSame(prevTimerange?.to)) {
return false;
}