UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

87 lines (67 loc) 3.2 kB
// (C) 2007-2020 GoodData Corporation import { ColumnApi, Column } from "ag-grid-community"; import { setColumnMaxWidthIf, setColumnMaxWidth } from "../agColumnWrapper"; describe("agColumnWrapper", () => { function getFakeColumnApi(columnsMaps: { [id: string]: Column }): ColumnApi { const fakeColumnApi = { getColumn: (columnId: string) => { return columnsMaps[columnId]; }, }; return fakeColumnApi as ColumnApi; } function getFakeColumn(columnDefinition: any): Column { const fakeColumn = { getColDef: () => { return columnDefinition; }, }; return fakeColumn as Column; } describe("setColumnMaxWidth", () => { it("should set internal property maxWidth of column and column.getColDef().maxWidth", async () => { const maxWidth = 500; const columnDef1 = { maxWidth: undefined as number }; const columnDef2 = { maxWidth: undefined as number }; const columnsMaps = { colId1: getFakeColumn(columnDef1), colId2: getFakeColumn(columnDef2), }; const columnApi = getFakeColumnApi(columnsMaps); setColumnMaxWidth(columnApi, ["colId2"], maxWidth); expect(columnDef2.maxWidth).toEqual(maxWidth); // check for private property maxWidth of column expect((columnsMaps.colId2 as any).maxWidth).toEqual(maxWidth); }); }); describe("setColumnMaxWidthIf", () => { it("should set internal property maxWidth of column and column.getColDef().maxWidth when condition is true", async () => { const maxWidth = 500; const columnDef1 = { maxWidth: undefined as number }; const columnDef2 = { maxWidth: undefined as number }; const columnsMaps = { colId1: getFakeColumn(columnDef1), colId2: getFakeColumn(columnDef2), }; const columnApi = getFakeColumnApi(columnsMaps); setColumnMaxWidthIf(columnApi, ["colId2"], maxWidth, () => true); expect(columnDef2.maxWidth).toEqual(maxWidth); // check for private property maxWidth of column expect((columnsMaps.colId2 as any).maxWidth).toEqual(maxWidth); }); it("should not set internal property maxWidth of column and column.getColDef().maxWidth when condition is false", async () => { const maxWidth = 500; const columnDef1 = { maxWidth: undefined as number }; const columnDef2 = { maxWidth: undefined as number }; const columnsMaps = { colId1: getFakeColumn(columnDef1), colId2: getFakeColumn(columnDef2), }; const columnApi = getFakeColumnApi(columnsMaps); setColumnMaxWidthIf(columnApi, ["colId2"], maxWidth, () => false); expect(columnDef2.maxWidth).toEqual(undefined); // check for private property maxWidth of column expect((columnsMaps.colId2 as any).maxWidth).toEqual(undefined); }); }); });