From d8aed285c8064462f9f5b7a1f8345b019f709417 Mon Sep 17 00:00:00 2001 From: Vlad Babich Date: Fri, 20 Sep 2024 12:06:20 -0600 Subject: [PATCH 1/4] DH-17537: Fix Advanced Filter dialog not showing the values list on tree tables --- packages/iris-grid/src/IrisGridTableModel.ts | 4 ---- packages/iris-grid/src/IrisGridTableModelTemplate.ts | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/iris-grid/src/IrisGridTableModel.ts b/packages/iris-grid/src/IrisGridTableModel.ts index 3719f3486..9768c2886 100644 --- a/packages/iris-grid/src/IrisGridTableModel.ts +++ b/packages/iris-grid/src/IrisGridTableModel.ts @@ -63,10 +63,6 @@ class IrisGridTableModel return this.table.getColumnStatistics != null; } - get isValuesTableAvailable(): boolean { - return this.table.selectDistinct != null && this.table.copy != null; - } - get isRollupAvailable(): boolean { return this.table.rollup != null; } diff --git a/packages/iris-grid/src/IrisGridTableModelTemplate.ts b/packages/iris-grid/src/IrisGridTableModelTemplate.ts index 51407547f..90c0c53ed 100644 --- a/packages/iris-grid/src/IrisGridTableModelTemplate.ts +++ b/packages/iris-grid/src/IrisGridTableModelTemplate.ts @@ -446,6 +446,10 @@ class IrisGridTableModelTemplate< : 0; } + get isValuesTableAvailable(): boolean { + return this.table.selectDistinct != null && this.table.copy != null; + } + get isChartBuilderAvailable(): boolean { return true; } From 68aa65e16bf4b837144c410437ebf2daa8a8d7e4 Mon Sep 17 00:00:00 2001 From: Vlad Babich Date: Fri, 20 Sep 2024 13:14:04 -0600 Subject: [PATCH 2/4] Add unit test for codecov --- packages/iris-grid/src/IrisGridTreeTableModel.test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/iris-grid/src/IrisGridTreeTableModel.test.ts b/packages/iris-grid/src/IrisGridTreeTableModel.test.ts index 9228a2316..8c29861ed 100644 --- a/packages/iris-grid/src/IrisGridTreeTableModel.test.ts +++ b/packages/iris-grid/src/IrisGridTreeTableModel.test.ts @@ -78,3 +78,13 @@ describe('IrisGridTreeTableModel layoutHints', () => { expect(model.layoutHints).toEqual(undefined); }); }); + +describe('IrisGridTreeTableModel values table', () => { + it('is available for tree tables', () => { + const columns = irisGridTestUtils.makeColumns(); + const table = irisGridTestUtils.makeTreeTable(columns, columns, 100, []); + const model = new IrisGridTreeTableModel(dh, table); + + expect(model.isValuesTableAvailable).toBe(true); + }); +}); From a15843a89a9602933ff01bc49cbecf4c8895a90f Mon Sep 17 00:00:00 2001 From: Vlad Babich Date: Mon, 23 Sep 2024 10:49:21 -0600 Subject: [PATCH 3/4] Add more test coverage --- .../src/IrisGridTreeTableModel.test.ts | 17 +++++++++++++++++ .../iris-grid/src/IrisGridTreeTableModel.ts | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/iris-grid/src/IrisGridTreeTableModel.test.ts b/packages/iris-grid/src/IrisGridTreeTableModel.test.ts index 8c29861ed..0fc72a332 100644 --- a/packages/iris-grid/src/IrisGridTreeTableModel.test.ts +++ b/packages/iris-grid/src/IrisGridTreeTableModel.test.ts @@ -32,6 +32,23 @@ describe('IrisGridTreeTableModel virtual columns', () => { expect(model.columns).toEqual(expected); } ); + + test.each([ + ['filter', 'Filter'], + ['sort', 'Sort'], + ['formatColor', 'Color'], + ['get', 'get'], + ['getFormat', 'getFormat'], + ['formatNumber', 'formatNumber'], + ['formatDate', 'formatDate'], + ])('virtual column method %s is not implemented', (method, displayName) => { + const groupedColumns = columns.slice(0, 2); + const table = irisGridTestUtils.makeTreeTable(columns, groupedColumns); + const model = new IrisGridTreeTableModel(dh, table); + expect(() => model.columns[0][method]()).toThrow( + new Error(`${displayName} not implemented for virtual column`) + ); + }); }); describe('IrisGridTreeTableModel layoutHints', () => { diff --git a/packages/iris-grid/src/IrisGridTreeTableModel.ts b/packages/iris-grid/src/IrisGridTreeTableModel.ts index eb2c00b5e..432359196 100644 --- a/packages/iris-grid/src/IrisGridTreeTableModel.ts +++ b/packages/iris-grid/src/IrisGridTreeTableModel.ts @@ -30,7 +30,7 @@ const VirtualGroupColumn = Object.freeze({ throw new Error('Filter not implemented for virtual column'); }, sort: () => { - throw new Error('Sort not implemented virtual column'); + throw new Error('Sort not implemented for virtual column'); }, formatColor: () => { throw new Error('Color not implemented for virtual column'); From aabcde8f6f82cd0c759e325a2fd7394165234c83 Mon Sep 17 00:00:00 2001 From: Vlad Babich Date: Mon, 23 Sep 2024 11:02:41 -0600 Subject: [PATCH 4/4] Add more test coverage --- packages/iris-grid/src/IrisGridModel.test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/iris-grid/src/IrisGridModel.test.ts b/packages/iris-grid/src/IrisGridModel.test.ts index 34bd4bf7f..a480324c0 100644 --- a/packages/iris-grid/src/IrisGridModel.test.ts +++ b/packages/iris-grid/src/IrisGridModel.test.ts @@ -150,6 +150,16 @@ it('updates the model correctly when adding and removing a rollup config', async expect(table.rollup).not.toHaveBeenCalled(); }); +it('isRollupAvailable checks if the rollup method is defined', async () => { + const table = irisGridTestUtils.makeTable(); + + const mock = jest.fn(); + table.rollup = mock; + const model = irisGridTestUtils.makeModel(table); + + expect(model.isRollupAvailable).toBe(true); +}); + it('closes the table correctly when the model is closed', () => { const table = irisGridTestUtils.makeTable(); table.close = jest.fn();