/usr/share/grafana/public/app/plugins/datasource/loki/components
import { dateTime, getDefaultTimeRange } from '@grafana/data'; import { LokiQueryType } from '../types'; import { shouldUpdateStats } from './stats'; describe('shouldUpdateStats', () => { const timerange = getDefaultTimeRange(); let queryType = LokiQueryType.Range; let prevQueryType = LokiQueryType.Range; it('should return true if the query has changed', () => { const query = '{job="grafana"}'; const prevQuery = '{job="not-grafana"}'; expect(shouldUpdateStats(query, prevQuery, timerange, timerange, queryType, prevQueryType)).toBe(true); }); it('should return true if the timerange has changed', () => { const query = '{job="grafana"}'; const prevQuery = '{job="grafana"}'; timerange.raw.from = 'now-14h'; const prevTimerange = getDefaultTimeRange(); expect(shouldUpdateStats(query, prevQuery, timerange, prevTimerange, queryType, prevQueryType)).toBe(true); }); it('should return true if the previous query was undefined', () => { const query = '{job="grafana"}'; const prevQuery = undefined; expect(shouldUpdateStats(query, prevQuery, timerange, timerange, queryType, prevQueryType)).toBe(true); }); it('should return true if the query really changed, otherwise false', () => { const prevQuery = '{job="grafana"}'; const query = `${prevQuery} `; expect(shouldUpdateStats(query, prevQuery, timerange, timerange, queryType, prevQueryType)).toBe(false); }); it('should return false if the query and timerange have not changed', () => { const query = '{job="grafana"}'; const prevQuery = '{job="grafana"}'; expect(shouldUpdateStats(query, prevQuery, timerange, timerange, queryType, prevQueryType)).toBe(false); }); it('should return false if the query and timerange with absolute and relative mixed have not changed', () => { const query = '{job="grafana"}'; const prevQuery = '{job="grafana"}'; const now = dateTime(Date.now()); timerange.raw.from = now; const prevTimerange = getDefaultTimeRange(); prevTimerange.raw.from = now; expect(shouldUpdateStats(query, prevQuery, timerange, prevTimerange, queryType, prevQueryType)).toBe(false); }); it('should return true if the query type has changed', () => { const query = '{job="grafana"}'; const prevQuery = '{job="grafana"}'; prevQueryType = LokiQueryType.Instant; expect(shouldUpdateStats(query, prevQuery, timerange, timerange, queryType, prevQueryType)).toBe(true); }); });
.
Edit
..
Edit
AnnotationsQueryEditor.tsx
Edit
LokiCheatSheet.test.tsx
Edit
LokiCheatSheet.tsx
Edit
LokiContextUi.test.tsx
Edit
LokiContextUi.tsx
Edit
LokiLabelBrowser.test.tsx
Edit
LokiLabelBrowser.tsx
Edit
LokiOptionFields.test.tsx
Edit
LokiOptionFields.tsx
Edit
LokiQueryEditor.test.tsx
Edit
LokiQueryEditor.tsx
Edit
LokiQueryEditorByApp.test.tsx
Edit
LokiQueryEditorByApp.tsx
Edit
LokiQueryEditorForAlerting.tsx
Edit
LokiQueryField.test.tsx
Edit
LokiQueryField.tsx
Edit
VariableQueryEditor.test.tsx
Edit
VariableQueryEditor.tsx
Edit
monaco-query-field
Edit
stats.test.ts
Edit
stats.ts
Edit
types.ts
Edit