Logs: fix canKeepDisplayedFields with possibly undefined queries (#97103)

pull/97112/head
Matias Chomicki 1 year ago committed by GitHub
parent b898a4540d
commit 3f83322fa9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 27
      public/app/features/explore/Logs/utils/logs.test.ts
  2. 2
      public/app/features/explore/Logs/utils/logs.ts

@ -0,0 +1,27 @@
import { DataQuery } from '@grafana/data';
import { canKeepDisplayedFields } from './logs';
describe('canKeepDisplayedFields', () => {
test('Returns false when passing no queries', () => {
expect(canKeepDisplayedFields(undefined, [])).toBe(false);
});
test('Returns false when some prev queries are undefined', () => {
const logQueries: DataQuery[] = [{ refId: 'A' }, { refId: 'B' }];
const prevLogQueries = [{ refId: 'C' }];
expect(canKeepDisplayedFields(logQueries, prevLogQueries)).toBe(false);
});
test('Returns false when some new queries are undefined', () => {
const logQueries: DataQuery[] = [{ refId: 'A' }];
const prevLogQueries = [{ refId: 'C' }, { refId: 'B' }];
expect(canKeepDisplayedFields(logQueries, prevLogQueries)).toBe(false);
});
test('Returns true when the queries exactly match', () => {
const logQueries: DataQuery[] = [{ refId: 'C' }, { refId: 'B' }];
const prevLogQueries = [{ refId: 'C' }, { refId: 'B' }];
expect(canKeepDisplayedFields(logQueries, prevLogQueries)).toBe(true);
});
});

@ -17,7 +17,7 @@ export const canKeepDisplayedFields = (logsQueries: DataQuery[] | undefined, pre
return false;
}
for (let i = 0; i < logsQueries.length; i++) {
if (!shallowCompare(logsQueries[i], prevLogsQueries[i])) {
if (!logsQueries[i] || !prevLogsQueries[i] || !shallowCompare(logsQueries[i], prevLogsQueries[i])) {
return false;
}
}

Loading…
Cancel
Save