From 1b50fc094298963f4c78724b6912228b2618523b Mon Sep 17 00:00:00 2001 From: Aleksey Semikozov <2846685+aleksei-semikozov@users.noreply.github.com> Date: Mon, 26 Oct 2026 07:54:53 -0300 Subject: [PATCH] T1337212 PivotGrid - Header filter loads infinitely when field values request fails --- .../data_source/m_data_source.test.ts | 32 +++++++++++++++++++ .../pivot_grid/data_source/m_data_source.ts | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.test.ts diff --git a/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.test.ts b/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.test.ts new file mode 100644 index 000000000000..57b4a44feec4 --- /dev/null +++ b/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, it } from '@jest/globals'; +import CustomStore from '@js/data/custom_store'; + +import { PivotGridDataSource } from './m_data_source'; + +describe('PivotGridDataSource', () => { + describe('getFieldValues', () => { + it('should reject when the store fails to load field values (T1337212)', async () => { + const loadError = new Error('Load failed'); + let shouldFail = false; + const dataSource = new PivotGridDataSource({ + remoteOperations: true, + store: new CustomStore({ + load: (): Promise => (shouldFail + ? Promise.reject(loadError) + : Promise.resolve({ data: [] })), + }), + fields: [{ dataField: 'region', area: 'row' }], + }); + await dataSource.load(); + shouldFail = true; + + const result = await new Promise((resolve) => { + dataSource.getFieldValues(0, false, undefined) + .done(() => resolve('resolved')) + .fail((error) => resolve(error)); + }); + + expect(result).toBe(loadError); + }); + }); +}); diff --git a/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.ts b/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.ts index c61f05e80828..6cfb4982e08c 100644 --- a/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.ts +++ b/packages/devextreme/js/__internal/grids/pivot_grid/data_source/m_data_source.ts @@ -750,7 +750,7 @@ class PivotGridDataSource { that._sort(loadOptions, data); } d.resolve(data.columns); - }).fail(d); + }).fail(d.reject); } else { d.reject(); }