@osdk/react-components 0.2.0-beta.10 → 0.2.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +105 -0
- package/CHANGELOG.md +22 -0
- package/build/browser/object-table/DefaultCellRenderer.js +5 -2
- package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/browser/object-table/EditableCell.js +16 -6
- package/build/browser/object-table/EditableCell.js.map +1 -1
- package/build/browser/object-table/EditableCell.module.css +30 -2
- package/build/browser/object-table/EditableCell.module.css.js +2 -1
- package/build/browser/object-table/ObjectTable.js +9 -22
- package/build/browser/object-table/ObjectTable.js.map +1 -1
- package/build/browser/object-table/ObjectTableApi.js.map +1 -1
- package/build/browser/object-table/Table.js +23 -15
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/Table.module.css +0 -8
- package/build/browser/object-table/Table.module.css.js +1 -2
- package/build/browser/object-table/TableBody.js +8 -2
- package/build/browser/object-table/TableBody.js.map +1 -1
- package/build/browser/object-table/TableCell.module.css +0 -8
- package/build/browser/object-table/TableEditContainer.js +79 -0
- package/build/browser/object-table/TableEditContainer.js.map +1 -0
- package/build/browser/object-table/TableEditContainer.module.css +44 -0
- package/build/browser/object-table/TableEditContainer.module.css.js +9 -0
- package/build/browser/object-table/TableRow.js +12 -4
- package/build/browser/object-table/TableRow.js.map +1 -1
- package/build/browser/object-table/TableRow.module.css +2 -1
- package/build/browser/object-table/hooks/useEditableTable.js +20 -11
- package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/browser/object-table/hooks/useObjectTableData.js +0 -5
- package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/browser/object-table/utils/getCellId.js +0 -7
- package/build/browser/object-table/utils/getCellId.js.map +1 -1
- package/build/browser/object-table/utils/types.js.map +1 -1
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/styles.css +79 -19
- package/build/cjs/public/experimental.cjs +179 -90
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +96 -57
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +40 -18
- package/build/esm/object-table/DefaultCellRenderer.js +5 -2
- package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/esm/object-table/EditableCell.js +16 -6
- package/build/esm/object-table/EditableCell.js.map +1 -1
- package/build/esm/object-table/EditableCell.module.css +30 -2
- package/build/esm/object-table/ObjectTable.js +9 -22
- package/build/esm/object-table/ObjectTable.js.map +1 -1
- package/build/esm/object-table/ObjectTableApi.js.map +1 -1
- package/build/esm/object-table/Table.js +23 -15
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/Table.module.css +0 -8
- package/build/esm/object-table/TableBody.js +8 -2
- package/build/esm/object-table/TableBody.js.map +1 -1
- package/build/esm/object-table/TableCell.module.css +0 -8
- package/build/esm/object-table/TableEditContainer.js +79 -0
- package/build/esm/object-table/TableEditContainer.js.map +1 -0
- package/build/esm/object-table/TableEditContainer.module.css +44 -0
- package/build/esm/object-table/TableRow.js +12 -4
- package/build/esm/object-table/TableRow.js.map +1 -1
- package/build/esm/object-table/TableRow.module.css +2 -1
- package/build/esm/object-table/hooks/useEditableTable.js +20 -11
- package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/esm/object-table/hooks/useObjectTableData.js +0 -5
- package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/esm/object-table/utils/getCellId.js +0 -7
- package/build/esm/object-table/utils/getCellId.js.map +1 -1
- package/build/esm/object-table/utils/types.js.map +1 -1
- package/build/esm/public/experimental.js.map +1 -1
- package/build/types/object-table/DefaultCellRenderer.d.ts +2 -2
- package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
- package/build/types/object-table/EditableCell.d.ts +18 -6
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/ObjectTable.d.ts +1 -1
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +16 -6
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/Table.d.ts +5 -10
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableBody.d.ts +4 -1
- package/build/types/object-table/TableBody.d.ts.map +1 -1
- package/build/types/object-table/TableEditContainer.d.ts +9 -0
- package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
- package/build/types/object-table/TableRow.d.ts +5 -1
- package/build/types/object-table/TableRow.d.ts.map +1 -1
- package/build/types/object-table/hooks/useEditableTable.d.ts +4 -9
- package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
- package/build/types/object-table/utils/getCellId.d.ts +0 -1
- package/build/types/object-table/utils/getCellId.d.ts.map +1 -1
- package/build/types/object-table/utils/types.d.ts +25 -3
- package/build/types/object-table/utils/types.d.ts.map +1 -1
- package/build/types/public/experimental.d.ts +1 -1
- package/build/types/public/experimental.d.ts.map +1 -1
- package/package.json +7 -6
- package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js +0 -202
- package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/dateUtils.test.js +0 -55
- package/build/browser/filter-list/__tests__/dateUtils.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/getFilterKey.test.js +0 -53
- package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/testUtils.js +0 -203
- package/build/browser/filter-list/__tests__/testUtils.js.map +0 -1
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
- package/build/browser/object-table/__tests__/useEditableTable.test.js +0 -197
- package/build/browser/object-table/__tests__/useEditableTable.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
- package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
- package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js +0 -202
- package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/dateUtils.test.js +0 -55
- package/build/esm/filter-list/__tests__/dateUtils.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/getFilterKey.test.js +0 -53
- package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/testUtils.js +0 -203
- package/build/esm/filter-list/__tests__/testUtils.js.map +0 -1
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
- package/build/esm/object-table/__tests__/useEditableTable.test.js +0 -197
- package/build/esm/object-table/__tests__/useEditableTable.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
- package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
- package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
- package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/testUtils.d.ts +0 -65
- package/build/types/filter-list/__tests__/testUtils.d.ts.map +0 -1
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +0 -1
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +0 -1
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts +0 -1
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import { renderHook } from "@testing-library/react";
|
|
18
|
-
import { describe, expect, it, vi } from "vitest";
|
|
19
|
-
import { SELECTION_COLUMN_ID } from "../../utils/constants.js";
|
|
20
|
-
import { useSelectionColumn } from "../useSelectionColumn.js";
|
|
21
|
-
const TestObjectType = {
|
|
22
|
-
type: "object",
|
|
23
|
-
apiName: "TestObject"
|
|
24
|
-
};
|
|
25
|
-
describe("useSelectionColumn", () => {
|
|
26
|
-
describe("selectionMode: 'none'", () => {
|
|
27
|
-
it("returns null when selection is disabled", () => {
|
|
28
|
-
const {
|
|
29
|
-
result
|
|
30
|
-
} = renderHook(() => useSelectionColumn({
|
|
31
|
-
selectionMode: "none",
|
|
32
|
-
isAllSelected: false,
|
|
33
|
-
hasSelection: false,
|
|
34
|
-
onToggleAll: vi.fn(),
|
|
35
|
-
onToggleRow: vi.fn()
|
|
36
|
-
}));
|
|
37
|
-
expect(result.current).toBeNull();
|
|
38
|
-
});
|
|
39
|
-
it("returns null even with selection state", () => {
|
|
40
|
-
const {
|
|
41
|
-
result
|
|
42
|
-
} = renderHook(() => useSelectionColumn({
|
|
43
|
-
selectionMode: "none",
|
|
44
|
-
isAllSelected: true,
|
|
45
|
-
hasSelection: true,
|
|
46
|
-
onToggleAll: vi.fn(),
|
|
47
|
-
onToggleRow: vi.fn()
|
|
48
|
-
}));
|
|
49
|
-
expect(result.current).toBeNull();
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
describe("selectionMode: 'single'", () => {
|
|
53
|
-
it("returns column definition with correct properties", () => {
|
|
54
|
-
const {
|
|
55
|
-
result
|
|
56
|
-
} = renderHook(() => useSelectionColumn({
|
|
57
|
-
selectionMode: "single",
|
|
58
|
-
isAllSelected: false,
|
|
59
|
-
hasSelection: false,
|
|
60
|
-
onToggleAll: vi.fn(),
|
|
61
|
-
onToggleRow: vi.fn()
|
|
62
|
-
}));
|
|
63
|
-
expect(result.current).not.toBeNull();
|
|
64
|
-
expect(result.current).toMatchObject({
|
|
65
|
-
id: SELECTION_COLUMN_ID,
|
|
66
|
-
size: 50,
|
|
67
|
-
minSize: 50,
|
|
68
|
-
maxSize: 50,
|
|
69
|
-
enableSorting: false,
|
|
70
|
-
enableResizing: false
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
it("has header function that returns null for single mode", () => {
|
|
74
|
-
const {
|
|
75
|
-
result
|
|
76
|
-
} = renderHook(() => useSelectionColumn({
|
|
77
|
-
selectionMode: "single",
|
|
78
|
-
isAllSelected: false,
|
|
79
|
-
hasSelection: false,
|
|
80
|
-
onToggleAll: vi.fn(),
|
|
81
|
-
onToggleRow: vi.fn()
|
|
82
|
-
}));
|
|
83
|
-
const columnDef = result.current;
|
|
84
|
-
expect(columnDef).not.toBeNull();
|
|
85
|
-
|
|
86
|
-
// Call header function
|
|
87
|
-
const headerResult = typeof columnDef?.header === "function" ? columnDef.header({}) : null;
|
|
88
|
-
expect(headerResult).toBeNull();
|
|
89
|
-
});
|
|
90
|
-
it("has cell function defined", () => {
|
|
91
|
-
const onToggleRow = vi.fn();
|
|
92
|
-
const {
|
|
93
|
-
result
|
|
94
|
-
} = renderHook(() => useSelectionColumn({
|
|
95
|
-
selectionMode: "single",
|
|
96
|
-
isAllSelected: false,
|
|
97
|
-
hasSelection: false,
|
|
98
|
-
onToggleAll: vi.fn(),
|
|
99
|
-
onToggleRow
|
|
100
|
-
}));
|
|
101
|
-
const columnDef = result.current;
|
|
102
|
-
expect(columnDef).not.toBeNull();
|
|
103
|
-
expect(columnDef?.cell).toBeDefined();
|
|
104
|
-
});
|
|
105
|
-
it("when dependencies other than selectionMode changed, the column definition should not update", () => {
|
|
106
|
-
const onToggleRow = vi.fn();
|
|
107
|
-
const onToggleAll = vi.fn();
|
|
108
|
-
const {
|
|
109
|
-
result,
|
|
110
|
-
rerender
|
|
111
|
-
} = renderHook(({
|
|
112
|
-
isAllSelected,
|
|
113
|
-
hasSelection
|
|
114
|
-
}) => useSelectionColumn({
|
|
115
|
-
selectionMode: "single",
|
|
116
|
-
isAllSelected,
|
|
117
|
-
hasSelection,
|
|
118
|
-
onToggleAll,
|
|
119
|
-
onToggleRow
|
|
120
|
-
}), {
|
|
121
|
-
initialProps: {
|
|
122
|
-
isAllSelected: false,
|
|
123
|
-
hasSelection: false
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
const firstResult = result.current;
|
|
127
|
-
|
|
128
|
-
// Rerender with different isAllSelected and hasSelection
|
|
129
|
-
rerender({
|
|
130
|
-
isAllSelected: true,
|
|
131
|
-
hasSelection: true
|
|
132
|
-
});
|
|
133
|
-
expect(result.current).toBe(firstResult);
|
|
134
|
-
});
|
|
135
|
-
it("when selectionMode changed, the column definition should update", () => {
|
|
136
|
-
const onToggleRow = vi.fn();
|
|
137
|
-
const onToggleAll = vi.fn();
|
|
138
|
-
const {
|
|
139
|
-
result,
|
|
140
|
-
rerender
|
|
141
|
-
} = renderHook(({
|
|
142
|
-
selectionMode
|
|
143
|
-
}) => useSelectionColumn({
|
|
144
|
-
selectionMode,
|
|
145
|
-
isAllSelected: false,
|
|
146
|
-
hasSelection: true,
|
|
147
|
-
onToggleAll,
|
|
148
|
-
onToggleRow
|
|
149
|
-
}), {
|
|
150
|
-
initialProps: {
|
|
151
|
-
selectionMode: "single"
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
const firstResult = result.current;
|
|
155
|
-
|
|
156
|
-
// Rerender with different selectionMode
|
|
157
|
-
rerender({
|
|
158
|
-
selectionMode: "multiple"
|
|
159
|
-
});
|
|
160
|
-
expect(result.current).not.toBe(firstResult);
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
describe("selectionMode: 'multiple'", () => {
|
|
164
|
-
it("returns column definition with correct properties", () => {
|
|
165
|
-
const {
|
|
166
|
-
result
|
|
167
|
-
} = renderHook(() => useSelectionColumn({
|
|
168
|
-
selectionMode: "multiple",
|
|
169
|
-
isAllSelected: false,
|
|
170
|
-
hasSelection: false,
|
|
171
|
-
onToggleAll: vi.fn(),
|
|
172
|
-
onToggleRow: vi.fn()
|
|
173
|
-
}));
|
|
174
|
-
expect(result.current).not.toBeNull();
|
|
175
|
-
expect(result.current).toMatchObject({
|
|
176
|
-
id: SELECTION_COLUMN_ID,
|
|
177
|
-
size: 50,
|
|
178
|
-
minSize: 50,
|
|
179
|
-
maxSize: 50,
|
|
180
|
-
enableSorting: false,
|
|
181
|
-
enableResizing: false
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
it("has header function that renders SelectionHeaderCell", () => {
|
|
185
|
-
const onToggleAll = vi.fn();
|
|
186
|
-
const {
|
|
187
|
-
result
|
|
188
|
-
} = renderHook(() => useSelectionColumn({
|
|
189
|
-
selectionMode: "multiple",
|
|
190
|
-
isAllSelected: false,
|
|
191
|
-
hasSelection: false,
|
|
192
|
-
onToggleAll,
|
|
193
|
-
onToggleRow: vi.fn()
|
|
194
|
-
}));
|
|
195
|
-
const columnDef = result.current;
|
|
196
|
-
expect(columnDef).not.toBeNull();
|
|
197
|
-
|
|
198
|
-
// Render header
|
|
199
|
-
const headerResult = typeof columnDef?.header === "function" ? columnDef.header({}) : null;
|
|
200
|
-
expect(headerResult).not.toBeNull();
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
describe("column definition structure", () => {
|
|
204
|
-
it("disables sorting and resizing", () => {
|
|
205
|
-
const {
|
|
206
|
-
result
|
|
207
|
-
} = renderHook(() => useSelectionColumn({
|
|
208
|
-
selectionMode: "multiple",
|
|
209
|
-
isAllSelected: false,
|
|
210
|
-
hasSelection: false,
|
|
211
|
-
onToggleAll: vi.fn(),
|
|
212
|
-
onToggleRow: vi.fn()
|
|
213
|
-
}));
|
|
214
|
-
const columnDef = result.current;
|
|
215
|
-
expect(columnDef?.enableSorting).toBe(false);
|
|
216
|
-
expect(columnDef?.enableResizing).toBe(false);
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
//# sourceMappingURL=useSelectionColumn.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectionColumn.test.js","names":["renderHook","describe","expect","it","vi","SELECTION_COLUMN_ID","useSelectionColumn","TestObjectType","type","apiName","result","selectionMode","isAllSelected","hasSelection","onToggleAll","fn","onToggleRow","current","toBeNull","not","toMatchObject","id","size","minSize","maxSize","enableSorting","enableResizing","columnDef","headerResult","header","cell","toBeDefined","rerender","initialProps","firstResult","toBe"],"sources":["useSelectionColumn.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport { renderHook } from \"@testing-library/react\";\nimport { describe, expect, it, vi } from \"vitest\";\nimport { SELECTION_COLUMN_ID } from \"../../utils/constants.js\";\nimport { useSelectionColumn } from \"../useSelectionColumn.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\ndescribe(\"useSelectionColumn\", () => {\n describe(\"selectionMode: 'none'\", () => {\n it(\"returns null when selection is disabled\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"none\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).toBeNull();\n });\n\n it(\"returns null even with selection state\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"none\",\n isAllSelected: true,\n hasSelection: true,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).toBeNull();\n });\n });\n\n describe(\"selectionMode: 'single'\", () => {\n it(\"returns column definition with correct properties\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).not.toBeNull();\n expect(result.current).toMatchObject({\n id: SELECTION_COLUMN_ID,\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n });\n });\n\n it(\"has header function that returns null for single mode\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n\n // Call header function\n const headerResult = typeof columnDef?.header === \"function\"\n ? columnDef.header({} as any)\n : null;\n\n expect(headerResult).toBeNull();\n });\n\n it(\"has cell function defined\", () => {\n const onToggleRow = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow,\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n expect(columnDef?.cell).toBeDefined();\n });\n\n it(\"when dependencies other than selectionMode changed, the column definition should not update\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n ({ isAllSelected, hasSelection }) =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { isAllSelected: false, hasSelection: false },\n },\n );\n\n const firstResult = result.current;\n\n // Rerender with different isAllSelected and hasSelection\n rerender({ isAllSelected: true, hasSelection: true });\n expect(result.current).toBe(firstResult);\n });\n\n it(\"when selectionMode changed, the column definition should update\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n (\n { selectionMode }: { selectionMode: \"single\" | \"multiple\" | \"none\" },\n ) =>\n useSelectionColumn<TestObject>({\n selectionMode,\n isAllSelected: false,\n hasSelection: true,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { selectionMode: \"single\" },\n },\n );\n\n const firstResult = result.current;\n\n // Rerender with different selectionMode\n rerender({ selectionMode: \"multiple\" });\n expect(result.current).not.toBe(firstResult);\n });\n });\n\n describe(\"selectionMode: 'multiple'\", () => {\n it(\"returns column definition with correct properties\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).not.toBeNull();\n expect(result.current).toMatchObject({\n id: SELECTION_COLUMN_ID,\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n });\n });\n\n it(\"has header function that renders SelectionHeaderCell\", () => {\n const onToggleAll = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll,\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n\n // Render header\n const headerResult = typeof columnDef?.header === \"function\"\n ? columnDef.header({} as any)\n : null;\n\n expect(headerResult).not.toBeNull();\n });\n });\n\n describe(\"column definition structure\", () => {\n it(\"disables sorting and resizing\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef?.enableSorting).toBe(false);\n expect(columnDef?.enableResizing).toBe(false);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|