From 384a6ad54da00df3fd419acf9df8776a02ff43d7 Mon Sep 17 00:00:00 2001 From: Ihor Yeromin Date: Mon, 28 Aug 2023 21:11:16 +0200 Subject: [PATCH] ArrayVector: Add vector field value warning (#73692) --- packages/grafana-data/src/vector/AppendedVectors.test.ts | 1 + packages/grafana-data/src/vector/ArrayVector.test.ts | 4 ++++ packages/grafana-data/src/vector/ArrayVector.ts | 8 ++++++++ .../grafana-data/src/vector/BinaryOperationVector.test.ts | 1 + packages/grafana-data/src/vector/SortedVector.test.ts | 1 + .../components/TracesQueryEditor/Filters.test.tsx | 1 + public/app/plugins/panel/datagrid/DataGridPanel.test.tsx | 1 + public/app/plugins/panel/datagrid/utils.test.ts | 1 + 8 files changed, 18 insertions(+) diff --git a/packages/grafana-data/src/vector/AppendedVectors.test.ts b/packages/grafana-data/src/vector/AppendedVectors.test.ts index 86e54546785..29ef1dabe02 100644 --- a/packages/grafana-data/src/vector/AppendedVectors.test.ts +++ b/packages/grafana-data/src/vector/AppendedVectors.test.ts @@ -3,6 +3,7 @@ import { ArrayVector } from './ArrayVector'; describe('Check Appending Vector', () => { it('should transparently join them', () => { + jest.spyOn(console, 'warn').mockImplementation(); const appended = new AppendedVectors(); appended.append(new ArrayVector([1, 2, 3])); appended.append(new ArrayVector([4, 5, 6])); diff --git a/packages/grafana-data/src/vector/ArrayVector.test.ts b/packages/grafana-data/src/vector/ArrayVector.test.ts index 119e42579df..3d9ae35fc5f 100644 --- a/packages/grafana-data/src/vector/ArrayVector.test.ts +++ b/packages/grafana-data/src/vector/ArrayVector.test.ts @@ -3,6 +3,10 @@ import { Field, FieldType } from '../types'; import { ArrayVector } from './ArrayVector'; describe('ArrayVector', () => { + beforeEach(() => { + jest.spyOn(console, 'warn').mockImplementation(); + }); + it('should init 150k with 65k Array.push() chonking', () => { const arr = Array.from({ length: 150e3 }, (v, i) => i); const av = new ArrayVector(arr); diff --git a/packages/grafana-data/src/vector/ArrayVector.ts b/packages/grafana-data/src/vector/ArrayVector.ts index 121276503f5..01b615162b7 100644 --- a/packages/grafana-data/src/vector/ArrayVector.ts +++ b/packages/grafana-data/src/vector/ArrayVector.ts @@ -1,3 +1,6 @@ +const notice = 'ArrayVector is deprecated and will be removed in Grafana 11. Please use plain arrays for field.values.'; +let notified = false; + /** * @public * @@ -30,6 +33,11 @@ export class ArrayVector extends Array { constructor(buffer?: any[]) { super(); this.buffer = buffer ?? []; + + if (!notified) { + console.warn(notice); + notified = true; + } } toJSON(): T[] { diff --git a/packages/grafana-data/src/vector/BinaryOperationVector.test.ts b/packages/grafana-data/src/vector/BinaryOperationVector.test.ts index e59ba476e33..10ab760f1bb 100644 --- a/packages/grafana-data/src/vector/BinaryOperationVector.test.ts +++ b/packages/grafana-data/src/vector/BinaryOperationVector.test.ts @@ -6,6 +6,7 @@ import { ConstantVector } from './ConstantVector'; describe('ScaledVector', () => { it('should support multiply operations', () => { + jest.spyOn(console, 'warn').mockImplementation(); const source = new ArrayVector([1, 2, 3, 4]); const scale = 2.456; const operation = binaryOperators.get(BinaryOperationID.Multiply).operation; diff --git a/packages/grafana-data/src/vector/SortedVector.test.ts b/packages/grafana-data/src/vector/SortedVector.test.ts index c8418e87298..0d7a6c556a4 100644 --- a/packages/grafana-data/src/vector/SortedVector.test.ts +++ b/packages/grafana-data/src/vector/SortedVector.test.ts @@ -3,6 +3,7 @@ import { SortedVector } from './SortedVector'; describe('SortedVector', () => { it('Should support sorting', () => { + jest.spyOn(console, 'warn').mockImplementation(); const values = new ArrayVector([1, 5, 2, 4]); const sorted = new SortedVector(values, [0, 2, 3, 1]); expect(sorted.toArray()).toEqual([1, 2, 4, 5]); diff --git a/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx b/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx index 8a2bb4f1464..6ecfccbe464 100644 --- a/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx +++ b/public/app/plugins/datasource/azuremonitor/components/TracesQueryEditor/Filters.test.tsx @@ -201,6 +201,7 @@ describe(`Traces Filters`, () => { }); it('should add a trace filter', async () => { + jest.spyOn(console, 'warn').mockImplementation(); let mockQuery = createMockQuery({ azureTraces: { traceTypes: ['customEvents'] } }); mockQuery.azureTraces = { ...mockQuery.azureTraces, diff --git a/public/app/plugins/panel/datagrid/DataGridPanel.test.tsx b/public/app/plugins/panel/datagrid/DataGridPanel.test.tsx index 1b7ff145e54..7594d3df6de 100644 --- a/public/app/plugins/panel/datagrid/DataGridPanel.test.tsx +++ b/public/app/plugins/panel/datagrid/DataGridPanel.test.tsx @@ -286,6 +286,7 @@ describe('DataGrid', () => { }); }); it('should add a new column', async () => { + jest.spyOn(console, 'warn').mockImplementation(); const spy = jest.spyOn(utils, 'updateSnapshot'); jest.useFakeTimers(); render(, { diff --git a/public/app/plugins/panel/datagrid/utils.test.ts b/public/app/plugins/panel/datagrid/utils.test.ts index 79144a21426..3f0a61e0c0f 100644 --- a/public/app/plugins/panel/datagrid/utils.test.ts +++ b/public/app/plugins/panel/datagrid/utils.test.ts @@ -6,6 +6,7 @@ describe('when deleting rows', () => { let df: DataFrame; beforeEach(() => { + jest.spyOn(console, 'warn').mockImplementation(); df = { name: 'test', length: 5,