Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import { jest } from '@jest/globals';
import fx from '@js/common/core/animation/fx';
import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import type { Properties as DataGridProperties } from '@js/ui/data_grid';
import DataGrid from '@js/ui/data_grid';
import { DataGridModel } from '@ts/grids/data_grid/__tests__/__mock__/model/data_grid';

export const SELECTORS = {
gridContainer: '#gridContainer',
};

export const GRID_CONTAINER_ID = 'gridContainer';

export const createDataGrid = async (
options: DataGridProperties = {},
): Promise<{
$container: dxElementWrapper;
component: DataGridModel;
instance: DataGrid;
}> => new Promise((resolve) => {
const $container = $('<div>')
.attr('id', GRID_CONTAINER_ID)
.appendTo(document.body);

const dataGridOptions: DataGridProperties = {
keyExpr: 'id',
...options,
};

const instance = new DataGrid($container.get(0) as HTMLDivElement, dataGridOptions);
const component = new DataGridModel($container.get(0) as HTMLElement);

jest.runAllTimers();

resolve({
$container,
component,
instance,
});
});

export const beforeTest = (): void => {
fx.off = true;
jest.useFakeTimers();
};

export const afterTest = (): void => {
const $container = $(SELECTORS.gridContainer);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const dataGrid = ($container as any).dxDataGrid('instance') as DataGrid;

dataGrid?.dispose();
$container.remove();
jest.clearAllMocks();
jest.useRealTimers();
fx.off = false;
};

export const flushAsync = async (): Promise<void> => {
jest.runAllTimers();
await Promise.resolve();
};
Original file line number Diff line number Diff line change
@@ -1,62 +1,12 @@
import {
afterEach, beforeEach, describe, expect, it, jest,
afterEach, beforeEach, describe, expect, it,
} from '@jest/globals';
import fx from '@js/common/core/animation/fx';
import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import type { Properties as DataGridProperties } from '@js/ui/data_grid';
import DataGrid from '@js/ui/data_grid';
import { DataGridModel } from '@ts/grids/data_grid/__tests__/__mock__/model/data_grid';

const SELECTORS = {
gridContainer: '#gridContainer',
};

const GRID_CONTAINER_ID = 'gridContainer';

const createDataGrid = async (
options: DataGridProperties = {},
): Promise<{
$container: dxElementWrapper;
component: DataGridModel;
instance: DataGrid;
}> => new Promise((resolve) => {
const $container = $('<div>')
.attr('id', GRID_CONTAINER_ID)
.appendTo(document.body);

const dataGridOptions: DataGridProperties = {
keyExpr: 'id',
...options,
};

const instance = new DataGrid($container.get(0) as HTMLDivElement, dataGridOptions);
const component = new DataGridModel($container.get(0) as HTMLElement);

jest.runAllTimers();

resolve({
$container,
component,
instance,
});
});

const beforeTest = (): void => {
fx.off = true;
jest.useFakeTimers();
};

const afterTest = (): void => {
const $container = $(SELECTORS.gridContainer);
const dataGrid = ($container as any).dxDataGrid('instance') as DataGrid;

dataGrid.dispose();
$container.remove();
jest.clearAllMocks();
jest.useRealTimers();
fx.off = false;
};
import {
afterTest,
beforeTest,
createDataGrid,
} from './__mock__/helpers/utils';

describe('Grid', () => {
beforeEach(beforeTest);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,65 +1,20 @@
import {
afterEach, beforeEach, describe, expect, it, jest,
} from '@jest/globals';
import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import type { Properties as DataGridProperties } from '@js/ui/data_grid';
import DataGrid from '@js/ui/data_grid';
import errors from '@js/ui/widget/ui.errors';
import { DataGridModel } from '@ts/grids/data_grid/__tests__/__mock__/model/data_grid';

const SELECTORS = {
gridContainer: '#gridContainer',
};

const GRID_CONTAINER_ID = 'gridContainer';

const createDataGrid = async (
options: DataGridProperties = {},
): Promise<{
$container: dxElementWrapper;
component: DataGridModel;
instance: DataGrid;
}> => new Promise((resolve) => {
const $container = $('<div>')
.attr('id', GRID_CONTAINER_ID)
.appendTo(document.body);

const dataGridOptions: DataGridProperties = {
keyExpr: 'id',
...options,
};

const instance = new DataGrid($container.get(0) as HTMLDivElement, dataGridOptions);
const component = new DataGridModel($container.get(0) as HTMLElement);

jest.runAllTimers();

resolve({
$container,
component,
instance,
});
});

const beforeTest = (): void => {
jest.useFakeTimers();
jest.spyOn(errors, 'log').mockImplementation(jest.fn());
jest.spyOn(errors, 'Error').mockImplementation(() => ({}));
};

const afterTest = (): void => {
const $container = $(SELECTORS.gridContainer);
const dataGrid = ($container as any).dxDataGrid('instance') as DataGrid;

dataGrid.dispose();
$container.remove();
jest.clearAllMocks();
jest.useRealTimers();
};
import {
afterTest,
beforeTest,
createDataGrid,
} from '../../__tests__/__mock__/helpers/utils';

describe('Bugs', () => {
beforeEach(beforeTest);
beforeEach(() => {
beforeTest();
jest.spyOn(errors, 'log').mockImplementation(jest.fn());
jest.spyOn(errors, 'Error').mockImplementation(() => ({}));
});
afterEach(afterTest);

describe('T1311329 - DataGrid - Column chooser hides a banded column on using search and recursive selection', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,54 +8,22 @@ import {
} from '@js/common/core/events/drag';
import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import type { Properties as DataGridProperties } from '@js/ui/data_grid';
import DataGrid from '@js/ui/data_grid';
import type DataGrid from '@js/ui/data_grid';
import errors from '@js/ui/widget/ui.errors';
import { DataGridModel } from '@ts/grids/data_grid/__tests__/__mock__/model/data_grid';
import type { DataGridModel } from '@ts/grids/data_grid/__tests__/__mock__/model/data_grid';

const SELECTORS = {
gridContainer: '#gridContainer',
};

const GRID_CONTAINER_ID = 'gridContainer';

const createDataGrid = async (
options: DataGridProperties = {},
): Promise<{
$container: dxElementWrapper;
component: DataGridModel;
instance: DataGrid;
}> => new Promise((resolve) => {
const $container = $('<div>')
.attr('id', GRID_CONTAINER_ID)
.appendTo(document.body);

const instance = new DataGrid($container.get(0) as HTMLDivElement, options);
const component = new DataGridModel($container.get(0) as HTMLElement);

jest.runAllTimers();

resolve({
$container,
component,
instance,
});
});
import {
afterTest as baseAfterTest,
beforeTest as baseBeforeTest,
createDataGrid,
} from '../__tests__/__mock__/helpers/utils';

const beforeTest = (): void => {
jest.useFakeTimers();
baseBeforeTest();
jest.spyOn(errors, 'log').mockImplementation(jest.fn());
};

const afterTest = (): void => {
const $container = $(SELECTORS.gridContainer);
const dataGrid = ($container as any).dxDataGrid('instance') as DataGrid;

dataGrid.dispose();
$container.remove();
jest.clearAllMocks();
jest.useRealTimers();
};
const afterTest = baseAfterTest;

describe('Performance optimization', () => {
beforeEach(beforeTest);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import {
afterEach, beforeEach, describe, expect, it, jest,
afterEach, beforeEach, describe, expect, it,
} from '@jest/globals';
import type { dxElementWrapper } from '@js/core/renderer';
import $ from '@js/core/renderer';
import type { Properties as DataGridProperties } from '@js/ui/data_grid';
import DataGrid from '@js/ui/data_grid';
import { DataGridModel } from '@ts/grids/data_grid/__tests__/__mock__/model/data_grid';

const GRID_CONTAINER_ID = 'gridContainer';

const SELECTORS = {
gridContainer: `#${GRID_CONTAINER_ID}`,
};
import {
afterTest,
beforeTest,
createDataGrid,
flushAsync,
} from '../../__tests__/__mock__/helpers/utils';

const dataSource = [{
ID: 1,
Expand Down Expand Up @@ -45,49 +41,6 @@ const dataSource = [{
Address: '4 Westmoreland Pl.',
}];

const flushAsync = async (): Promise<void> => {
jest.runOnlyPendingTimers();
await Promise.resolve();
};

const createDataGrid = async (
options: DataGridProperties = {},
): Promise<{
$container: dxElementWrapper;
component: DataGridModel;
instance: DataGrid;
}> => new Promise((resolve) => {
const $container = $('<div>')
.attr('id', GRID_CONTAINER_ID)
.appendTo(document.body);

const instance = new DataGrid($container.get(0) as HTMLDivElement, options);
const component = new DataGridModel($container.get(0) as HTMLElement);

jest.runAllTimers();
resolve({
$container,
component,
instance,
});
});

const beforeTest = (): void => {
jest.useFakeTimers();
};

const afterTest = (): void => {
const $container = $(SELECTORS.gridContainer);
const dataGrid = (
$container as dxElementWrapper & { dxDataGrid: (command: string) => DataGrid }
).dxDataGrid('instance');

dataGrid.dispose();
$container.remove();
jest.clearAllMocks();
jest.useRealTimers();
};

describe('DataGrid editing', () => {
beforeEach(beforeTest);
afterEach(afterTest);
Expand Down
Loading
Loading