@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.
Files changed (182) hide show
  1. package/AGENTS.md +105 -0
  2. package/CHANGELOG.md +22 -0
  3. package/build/browser/object-table/DefaultCellRenderer.js +5 -2
  4. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  5. package/build/browser/object-table/EditableCell.js +16 -6
  6. package/build/browser/object-table/EditableCell.js.map +1 -1
  7. package/build/browser/object-table/EditableCell.module.css +30 -2
  8. package/build/browser/object-table/EditableCell.module.css.js +2 -1
  9. package/build/browser/object-table/ObjectTable.js +9 -22
  10. package/build/browser/object-table/ObjectTable.js.map +1 -1
  11. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  12. package/build/browser/object-table/Table.js +23 -15
  13. package/build/browser/object-table/Table.js.map +1 -1
  14. package/build/browser/object-table/Table.module.css +0 -8
  15. package/build/browser/object-table/Table.module.css.js +1 -2
  16. package/build/browser/object-table/TableBody.js +8 -2
  17. package/build/browser/object-table/TableBody.js.map +1 -1
  18. package/build/browser/object-table/TableCell.module.css +0 -8
  19. package/build/browser/object-table/TableEditContainer.js +79 -0
  20. package/build/browser/object-table/TableEditContainer.js.map +1 -0
  21. package/build/browser/object-table/TableEditContainer.module.css +44 -0
  22. package/build/browser/object-table/TableEditContainer.module.css.js +9 -0
  23. package/build/browser/object-table/TableRow.js +12 -4
  24. package/build/browser/object-table/TableRow.js.map +1 -1
  25. package/build/browser/object-table/TableRow.module.css +2 -1
  26. package/build/browser/object-table/hooks/useEditableTable.js +20 -11
  27. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
  28. package/build/browser/object-table/hooks/useObjectTableData.js +0 -5
  29. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  30. package/build/browser/object-table/utils/getCellId.js +0 -7
  31. package/build/browser/object-table/utils/getCellId.js.map +1 -1
  32. package/build/browser/object-table/utils/types.js.map +1 -1
  33. package/build/browser/public/experimental.js.map +1 -1
  34. package/build/browser/styles.css +79 -19
  35. package/build/cjs/public/experimental.cjs +179 -90
  36. package/build/cjs/public/experimental.cjs.map +1 -1
  37. package/build/cjs/public/experimental.css +96 -57
  38. package/build/cjs/public/experimental.css.map +1 -1
  39. package/build/cjs/public/experimental.d.cts +40 -18
  40. package/build/esm/object-table/DefaultCellRenderer.js +5 -2
  41. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  42. package/build/esm/object-table/EditableCell.js +16 -6
  43. package/build/esm/object-table/EditableCell.js.map +1 -1
  44. package/build/esm/object-table/EditableCell.module.css +30 -2
  45. package/build/esm/object-table/ObjectTable.js +9 -22
  46. package/build/esm/object-table/ObjectTable.js.map +1 -1
  47. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  48. package/build/esm/object-table/Table.js +23 -15
  49. package/build/esm/object-table/Table.js.map +1 -1
  50. package/build/esm/object-table/Table.module.css +0 -8
  51. package/build/esm/object-table/TableBody.js +8 -2
  52. package/build/esm/object-table/TableBody.js.map +1 -1
  53. package/build/esm/object-table/TableCell.module.css +0 -8
  54. package/build/esm/object-table/TableEditContainer.js +79 -0
  55. package/build/esm/object-table/TableEditContainer.js.map +1 -0
  56. package/build/esm/object-table/TableEditContainer.module.css +44 -0
  57. package/build/esm/object-table/TableRow.js +12 -4
  58. package/build/esm/object-table/TableRow.js.map +1 -1
  59. package/build/esm/object-table/TableRow.module.css +2 -1
  60. package/build/esm/object-table/hooks/useEditableTable.js +20 -11
  61. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
  62. package/build/esm/object-table/hooks/useObjectTableData.js +0 -5
  63. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  64. package/build/esm/object-table/utils/getCellId.js +0 -7
  65. package/build/esm/object-table/utils/getCellId.js.map +1 -1
  66. package/build/esm/object-table/utils/types.js.map +1 -1
  67. package/build/esm/public/experimental.js.map +1 -1
  68. package/build/types/object-table/DefaultCellRenderer.d.ts +2 -2
  69. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
  70. package/build/types/object-table/EditableCell.d.ts +18 -6
  71. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  72. package/build/types/object-table/ObjectTable.d.ts +1 -1
  73. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  74. package/build/types/object-table/ObjectTableApi.d.ts +16 -6
  75. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  76. package/build/types/object-table/Table.d.ts +5 -10
  77. package/build/types/object-table/Table.d.ts.map +1 -1
  78. package/build/types/object-table/TableBody.d.ts +4 -1
  79. package/build/types/object-table/TableBody.d.ts.map +1 -1
  80. package/build/types/object-table/TableEditContainer.d.ts +9 -0
  81. package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
  82. package/build/types/object-table/TableRow.d.ts +5 -1
  83. package/build/types/object-table/TableRow.d.ts.map +1 -1
  84. package/build/types/object-table/hooks/useEditableTable.d.ts +4 -9
  85. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
  86. package/build/types/object-table/utils/getCellId.d.ts +0 -1
  87. package/build/types/object-table/utils/getCellId.d.ts.map +1 -1
  88. package/build/types/object-table/utils/types.d.ts +25 -3
  89. package/build/types/object-table/utils/types.d.ts.map +1 -1
  90. package/build/types/public/experimental.d.ts +1 -1
  91. package/build/types/public/experimental.d.ts.map +1 -1
  92. package/package.json +7 -6
  93. package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js +0 -202
  94. package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js.map +0 -1
  95. package/build/browser/filter-list/__tests__/dateUtils.test.js +0 -55
  96. package/build/browser/filter-list/__tests__/dateUtils.test.js.map +0 -1
  97. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
  98. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
  99. package/build/browser/filter-list/__tests__/getFilterKey.test.js +0 -53
  100. package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +0 -1
  101. package/build/browser/filter-list/__tests__/testUtils.js +0 -203
  102. package/build/browser/filter-list/__tests__/testUtils.js.map +0 -1
  103. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
  104. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
  105. package/build/browser/object-table/__tests__/useEditableTable.test.js +0 -197
  106. package/build/browser/object-table/__tests__/useEditableTable.test.js.map +0 -1
  107. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  108. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  109. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
  110. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  111. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  112. package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  113. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
  114. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  115. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
  116. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  117. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
  118. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  119. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
  120. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  121. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
  122. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  123. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js +0 -202
  124. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js.map +0 -1
  125. package/build/esm/filter-list/__tests__/dateUtils.test.js +0 -55
  126. package/build/esm/filter-list/__tests__/dateUtils.test.js.map +0 -1
  127. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
  128. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
  129. package/build/esm/filter-list/__tests__/getFilterKey.test.js +0 -53
  130. package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +0 -1
  131. package/build/esm/filter-list/__tests__/testUtils.js +0 -203
  132. package/build/esm/filter-list/__tests__/testUtils.js.map +0 -1
  133. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
  134. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
  135. package/build/esm/object-table/__tests__/useEditableTable.test.js +0 -197
  136. package/build/esm/object-table/__tests__/useEditableTable.test.js.map +0 -1
  137. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
  138. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
  139. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
  140. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
  141. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
  142. package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
  143. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
  144. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
  145. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
  146. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
  147. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
  148. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
  149. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
  150. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
  151. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
  152. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
  153. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts +0 -1
  154. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts.map +0 -1
  155. package/build/types/filter-list/__tests__/dateUtils.test.d.ts +0 -1
  156. package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +0 -1
  157. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +0 -1
  158. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +0 -1
  159. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +0 -1
  160. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +0 -1
  161. package/build/types/filter-list/__tests__/testUtils.d.ts +0 -65
  162. package/build/types/filter-list/__tests__/testUtils.d.ts.map +0 -1
  163. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +0 -1
  164. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +0 -1
  165. package/build/types/object-table/__tests__/useEditableTable.test.d.ts +0 -1
  166. package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +0 -1
  167. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
  168. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
  169. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
  170. package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
  171. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
  172. package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
  173. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
  174. package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
  175. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
  176. package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
  177. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
  178. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
  179. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
  180. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
  181. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
  182. package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
@@ -1,315 +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 { OsdkProvider } from "@osdk/react";
18
- import { useObjectSet, useOsdkObjects } from "@osdk/react/experimental";
19
- import { renderHook } from "@testing-library/react";
20
- import * as React from "react";
21
- import { beforeEach, describe, expect, it, vi } from "vitest";
22
- import { useObjectTableData } from "../useObjectTableData.js";
23
- const TestObjectType = {
24
- type: "object",
25
- apiName: "TestObject"
26
- };
27
- vi.mock("@osdk/react/experimental", () => ({
28
- useOsdkObjects: vi.fn((objectType, options) => {
29
- return {
30
- data: [],
31
- isLoading: false,
32
- error: undefined,
33
- fetchMore: undefined,
34
- isOptimistic: false,
35
- // Return the options to verify they were passed correctly
36
- _testOptions: options
37
- };
38
- }),
39
- useObjectSet: vi.fn((objectSet, options) => {
40
- return {
41
- data: [],
42
- isLoading: false,
43
- error: undefined,
44
- fetchMore: vi.fn(),
45
- totalCount: undefined,
46
- // Return the options to verify they were passed correctly
47
- _testOptions: options,
48
- isOptimistic: false
49
- };
50
- })
51
- }));
52
- const TestInterfaceType = {
53
- type: "interface",
54
- apiName: "TestInterface"
55
- };
56
- describe(useObjectTableData, () => {
57
- beforeEach(() => {
58
- vi.mocked(useOsdkObjects).mockClear();
59
- vi.mocked(useObjectSet).mockClear();
60
- });
61
- const wrapper = (client => {
62
- return ({
63
- children
64
- }) => {
65
- return /*#__PURE__*/React.createElement(OsdkProvider, {
66
- client: client
67
- }, children);
68
- };
69
- })({});
70
- const mockObjectSet = {
71
- $objectSetInternals: {
72
- def: TestObjectType
73
- }
74
- };
75
- it("calls useOsdkObjects with filter clause and orderBy provided", () => {
76
- const filterClause = {
77
- name: "John"
78
- };
79
- const orderBy = [{
80
- id: "name",
81
- desc: false
82
- }];
83
- const {
84
- result
85
- } = renderHook(() => useObjectTableData(TestObjectType, undefined, filterClause, orderBy), {
86
- wrapper
87
- });
88
- const mockResult = result.current;
89
- expect(mockResult._testOptions.where).toEqual(filterClause);
90
- expect(mockResult._testOptions.orderBy).toEqual({
91
- "name": "asc"
92
- });
93
- });
94
- it("calls useOsdkObjects without withProperties when no columnDefinitions provided", () => {
95
- const {
96
- result
97
- } = renderHook(() => useObjectTableData(TestObjectType, undefined), {
98
- wrapper
99
- });
100
- const mockResult = result.current;
101
- expect(mockResult._testOptions.withProperties).toBeUndefined();
102
- expect(mockResult._testOptions.pageSize).toBe(50);
103
- });
104
- it("calls useOsdkObjects without withProperties when columnDefinitions have no RDP columns", () => {
105
- const columnDefinitions = [{
106
- locator: {
107
- type: "property",
108
- id: "name"
109
- }
110
- }, {
111
- locator: {
112
- type: "property",
113
- id: "email"
114
- }
115
- }];
116
- const {
117
- result
118
- } = renderHook(() => useObjectTableData(TestObjectType, columnDefinitions), {
119
- wrapper
120
- });
121
- const mockResult = result.current;
122
- expect(mockResult._testOptions.withProperties).toBeUndefined();
123
- expect(mockResult._testOptions.pageSize).toBe(50);
124
- });
125
- it("extracts RDP creators and passes them to useOsdkObjects", () => {
126
- const mockRdpCreator1 = vi.fn();
127
- const mockRdpCreator2 = vi.fn();
128
- const columnDefinitions = [{
129
- locator: {
130
- type: "property",
131
- id: "name"
132
- }
133
- }, {
134
- locator: {
135
- type: "rdp",
136
- id: "rdp1",
137
- creator: mockRdpCreator1
138
- }
139
- }, {
140
- locator: {
141
- type: "rdp",
142
- id: "rdp2",
143
- creator: mockRdpCreator2
144
- }
145
- }, {
146
- locator: {
147
- type: "function",
148
- id: "myFunction"
149
- }
150
- }];
151
- const {
152
- result
153
- } = renderHook(() => useObjectTableData(TestObjectType, columnDefinitions), {
154
- wrapper
155
- });
156
- const mockResult = result.current;
157
- expect(mockResult._testOptions.withProperties).toEqual({
158
- rdp1: mockRdpCreator1,
159
- rdp2: mockRdpCreator2
160
- });
161
- });
162
- it("memoizes withProperties based on columnDefinitions", () => {
163
- const mockRdpCreator = vi.fn();
164
- const columnDefinitions = [{
165
- locator: {
166
- type: "rdp",
167
- id: "myRdp",
168
- creator: mockRdpCreator
169
- }
170
- }];
171
- const {
172
- result,
173
- rerender
174
- } = renderHook(({
175
- colDefs
176
- }) => useObjectTableData(TestObjectType, colDefs), {
177
- initialProps: {
178
- colDefs: columnDefinitions
179
- },
180
- wrapper
181
- });
182
- const firstMockResult = result.current;
183
- const firstWithProperties = firstMockResult._testOptions.withProperties;
184
-
185
- // Rerender with same columnDefinitions reference
186
- rerender({
187
- colDefs: columnDefinitions
188
- });
189
-
190
- // Should be the same reference (memoized)
191
- const secondMockResult = result.current;
192
- expect(secondMockResult._testOptions.withProperties).toBe(firstWithProperties);
193
- });
194
- it("updates withProperties when columnDefinitions change", () => {
195
- const mockRdpCreator1 = vi.fn();
196
- const mockRdpCreator2 = vi.fn();
197
- const {
198
- result,
199
- rerender
200
- } = renderHook(({
201
- colDefs
202
- }) => useObjectTableData(TestObjectType, colDefs), {
203
- initialProps: {
204
- colDefs: [{
205
- locator: {
206
- type: "rdp",
207
- id: "rdp1",
208
- creator: mockRdpCreator1
209
- }
210
- }]
211
- },
212
- wrapper
213
- });
214
- const firstMockResult = result.current;
215
- expect(firstMockResult._testOptions.withProperties).toEqual({
216
- rdp1: mockRdpCreator1
217
- });
218
- rerender({
219
- colDefs: [{
220
- locator: {
221
- type: "rdp",
222
- id: "rdp2",
223
- creator: mockRdpCreator2
224
- }
225
- }]
226
- });
227
- const secondMockResult = result.current;
228
- expect(secondMockResult._testOptions.withProperties).toEqual({
229
- rdp2: mockRdpCreator2
230
- });
231
- });
232
- it("returns useOsdkObjects result structure", () => {
233
- const {
234
- result
235
- } = renderHook(() => useObjectTableData(TestObjectType), {
236
- wrapper
237
- });
238
- expect(result.current).toHaveProperty("data");
239
- expect(result.current).toHaveProperty("isLoading");
240
- expect(result.current).toHaveProperty("error");
241
- expect(result.current).toHaveProperty("fetchMore");
242
- });
243
- it("when no objectSet provided, only enables useOsdkObjects", () => {
244
- const {
245
- result
246
- } = renderHook(() => useObjectTableData(TestObjectType), {
247
- wrapper
248
- });
249
- expect(useOsdkObjects).toHaveBeenCalledWith(TestObjectType, expect.objectContaining({
250
- enabled: true,
251
- pageSize: 50
252
- }));
253
- expect(useObjectSet).toHaveBeenCalledWith(undefined, expect.objectContaining({
254
- enabled: false,
255
- pageSize: 50
256
- }));
257
- });
258
- it(" when objectSet is provided, only enables useObjectSet", () => {
259
- const {
260
- result
261
- } = renderHook(() => useObjectTableData(TestObjectType, undefined, undefined, undefined, mockObjectSet), {
262
- wrapper
263
- });
264
- expect(useOsdkObjects).toHaveBeenCalledWith(TestObjectType, expect.objectContaining({
265
- enabled: false,
266
- pageSize: 50
267
- }));
268
- expect(useObjectSet).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({
269
- enabled: true,
270
- pageSize: 50
271
- }));
272
- });
273
- it("when objectSet is provided but type is interface, only enables useOsdkObjects ", () => {
274
- renderHook(() => useObjectTableData(TestInterfaceType, undefined, undefined, undefined, mockObjectSet), {
275
- wrapper
276
- });
277
- expect(useOsdkObjects).toHaveBeenCalledWith(TestInterfaceType, expect.objectContaining({
278
- enabled: true,
279
- pageSize: 50
280
- }));
281
- expect(useObjectSet).toHaveBeenCalledWith(undefined, expect.objectContaining({
282
- enabled: false,
283
- pageSize: 50
284
- }));
285
- });
286
- it("passes filter, orderBy and objectSetOptions to useObjectSet", () => {
287
- const filterClause = {
288
- name: "John"
289
- };
290
- const sorting = [{
291
- id: "name",
292
- desc: false
293
- }];
294
- const objectSetOptions = {
295
- union: [mockObjectSet],
296
- intersect: [],
297
- subtract: []
298
- };
299
- renderHook(() => useObjectTableData(TestObjectType, undefined, filterClause, sorting, mockObjectSet, objectSetOptions), {
300
- wrapper
301
- });
302
- expect(useObjectSet).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({
303
- enabled: true,
304
- pageSize: 50,
305
- where: filterClause,
306
- orderBy: {
307
- name: "asc"
308
- },
309
- union: objectSetOptions.union,
310
- intersect: objectSetOptions.intersect,
311
- subtract: objectSetOptions.subtract
312
- }));
313
- });
314
- });
315
- //# sourceMappingURL=useObjectTableData.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useObjectTableData.test.js","names":["OsdkProvider","useObjectSet","useOsdkObjects","renderHook","React","beforeEach","describe","expect","it","vi","useObjectTableData","TestObjectType","type","apiName","mock","fn","objectType","options","data","isLoading","error","undefined","fetchMore","isOptimistic","_testOptions","objectSet","totalCount","TestInterfaceType","mocked","mockClear","wrapper","client","children","createElement","mockObjectSet","$objectSetInternals","def","filterClause","name","orderBy","id","desc","result","mockResult","current","where","toEqual","withProperties","toBeUndefined","pageSize","toBe","columnDefinitions","locator","mockRdpCreator1","mockRdpCreator2","creator","rdp1","rdp2","mockRdpCreator","rerender","colDefs","initialProps","firstMockResult","firstWithProperties","secondMockResult","toHaveProperty","toHaveBeenCalledWith","objectContaining","enabled","anything","sorting","objectSetOptions","union","intersect","subtract"],"sources":["useObjectTableData.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 {\n DerivedProperty,\n InterfaceDefinition,\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n SimplePropertyDef,\n WhereClause,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { OsdkProvider } from \"@osdk/react\";\nimport type { UseOsdkListResult } from \"@osdk/react/experimental\";\nimport { useObjectSet, useOsdkObjects } from \"@osdk/react/experimental\";\nimport type { SortingState } from \"@tanstack/react-table\";\nimport { renderHook } from \"@testing-library/react\";\nimport * as React from \"react\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport type { ColumnDefinition } from \"../../ObjectTableApi.js\";\nimport { useObjectTableData } from \"../useObjectTableData.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\ntype TestObjectKeys = PropertyKeys<TestObject>;\n\ninterface MockReturnType extends UseOsdkListResult<TestObject> {\n _testOptions: {\n withProperties?: Record<string, unknown>;\n pageSize: number;\n where?: WhereClause<any>;\n enabled?: boolean;\n orderBy?: Record<string, \"asc\" | \"desc\">;\n };\n}\n\nvi.mock(\"@osdk/react/experimental\", () => ({\n useOsdkObjects: vi.fn((objectType, options): MockReturnType => {\n return {\n data: [],\n isLoading: false,\n error: undefined,\n fetchMore: undefined,\n isOptimistic: false,\n // Return the options to verify they were passed correctly\n _testOptions: options,\n };\n }),\n useObjectSet: vi.fn((objectSet, options): MockReturnType => {\n return {\n data: [],\n isLoading: false,\n error: undefined,\n fetchMore: vi.fn(),\n totalCount: undefined,\n // Return the options to verify they were passed correctly\n _testOptions: options,\n isOptimistic: false,\n };\n }),\n}));\n\nconst TestInterfaceType = {\n type: \"interface\",\n apiName: \"TestInterface\",\n} as const satisfies InterfaceDefinition;\n\ndescribe(useObjectTableData, () => {\n beforeEach(() => {\n vi.mocked(useOsdkObjects).mockClear();\n vi.mocked(useObjectSet).mockClear();\n });\n const createWrapper = (client: Client) => {\n return ({ children }: React.PropsWithChildren) => {\n return <OsdkProvider client={client}>{children}</OsdkProvider>;\n };\n };\n\n const fakeClient = {} as unknown as Client;\n const wrapper = createWrapper(fakeClient);\n\n const mockObjectSet = {\n $objectSetInternals: {\n def: TestObjectType,\n },\n } as unknown as ObjectSet<TestObject>;\n\n it(\"calls useOsdkObjects with filter clause and orderBy provided\", () => {\n const filterClause = {\n name: \"John\",\n } as unknown as WhereClause<TestObject>;\n const orderBy: SortingState = [{\n id: \"name\",\n desc: false,\n }];\n const { result } = renderHook(\n () =>\n useObjectTableData(TestObjectType, undefined, filterClause, orderBy),\n { wrapper },\n );\n\n const mockResult = result.current as unknown as MockReturnType;\n expect(mockResult._testOptions.where).toEqual(filterClause);\n expect(mockResult._testOptions.orderBy).toEqual({\n \"name\": \"asc\",\n });\n });\n\n it(\"calls useOsdkObjects without withProperties when no columnDefinitions provided\", () => {\n const { result } = renderHook(\n () => useObjectTableData(TestObjectType, undefined),\n { wrapper },\n );\n\n const mockResult = result.current as unknown as MockReturnType;\n expect(mockResult._testOptions.withProperties).toBeUndefined();\n expect(mockResult._testOptions.pageSize).toBe(50);\n });\n\n it(\"calls useOsdkObjects without withProperties when columnDefinitions have no RDP columns\", () => {\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(\n () => useObjectTableData(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n const mockResult = result.current as unknown as MockReturnType;\n expect(mockResult._testOptions.withProperties).toBeUndefined();\n expect(mockResult._testOptions.pageSize).toBe(50);\n });\n\n it(\"extracts RDP creators and passes them to useOsdkObjects\", () => {\n const mockRdpCreator1 = vi.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n const mockRdpCreator2 = vi.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n\n const columnDefinitions: Array<\n ColumnDefinition<\n TestObject,\n { rdp1: any; rdp2: any },\n { myFunction: any }\n >\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n {\n locator: { type: \"rdp\", id: \"rdp1\", creator: mockRdpCreator1 },\n },\n {\n locator: { type: \"rdp\", id: \"rdp2\", creator: mockRdpCreator2 },\n },\n {\n locator: { type: \"function\", id: \"myFunction\" },\n },\n ];\n\n const { result } = renderHook(\n () => useObjectTableData(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n const mockResult = result.current as unknown as MockReturnType;\n expect(mockResult._testOptions.withProperties).toEqual({\n rdp1: mockRdpCreator1,\n rdp2: mockRdpCreator2,\n });\n });\n\n it(\"memoizes withProperties based on columnDefinitions\", () => {\n const mockRdpCreator = vi.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n\n const columnDefinitions: Array<\n ColumnDefinition<TestObject, { myRdp: any }, {}>\n > = [\n {\n locator: { type: \"rdp\", id: \"myRdp\", creator: mockRdpCreator },\n },\n ];\n\n const { result, rerender } = renderHook(\n ({ colDefs }) => useObjectTableData(TestObjectType, colDefs),\n {\n initialProps: { colDefs: columnDefinitions },\n wrapper,\n },\n );\n\n const firstMockResult = result\n .current as unknown as MockReturnType;\n const firstWithProperties = firstMockResult._testOptions.withProperties;\n\n // Rerender with same columnDefinitions reference\n rerender({ colDefs: columnDefinitions });\n\n // Should be the same reference (memoized)\n const secondMockResult = result\n .current as unknown as MockReturnType;\n expect(secondMockResult._testOptions.withProperties).toBe(\n firstWithProperties,\n );\n });\n\n it(\"updates withProperties when columnDefinitions change\", () => {\n const mockRdpCreator1 = vi.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n const mockRdpCreator2 = vi.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n\n const initialColumnDefinitions: Array<\n ColumnDefinition<TestObject, { rdp1: any }, {}>\n > = [\n {\n locator: { type: \"rdp\", id: \"rdp1\", creator: mockRdpCreator1 },\n },\n ];\n\n type ColDefs =\n | Array<\n ColumnDefinition<TestObject, Record<string, SimplePropertyDef>, {}>\n >\n | undefined;\n\n const { result, rerender } = renderHook(\n ({ colDefs }: { colDefs: ColDefs }) =>\n useObjectTableData(TestObjectType, colDefs),\n {\n initialProps: { colDefs: initialColumnDefinitions as ColDefs },\n wrapper,\n },\n );\n\n const firstMockResult = result\n .current as unknown as MockReturnType;\n expect(firstMockResult._testOptions.withProperties).toEqual({\n rdp1: mockRdpCreator1,\n });\n\n const updatedColumnDefinitions: Array<\n ColumnDefinition<TestObject, { rdp2: SimplePropertyDef }, {}>\n > = [\n {\n locator: { type: \"rdp\", id: \"rdp2\", creator: mockRdpCreator2 },\n },\n ];\n\n rerender({ colDefs: updatedColumnDefinitions as ColDefs });\n\n const secondMockResult = result\n .current as unknown as MockReturnType;\n expect(secondMockResult._testOptions.withProperties).toEqual({\n rdp2: mockRdpCreator2,\n });\n });\n\n it(\"returns useOsdkObjects result structure\", () => {\n const { result } = renderHook(\n () => useObjectTableData(TestObjectType),\n { wrapper },\n );\n\n expect(result.current).toHaveProperty(\"data\");\n expect(result.current).toHaveProperty(\"isLoading\");\n expect(result.current).toHaveProperty(\"error\");\n expect(result.current).toHaveProperty(\"fetchMore\");\n });\n\n it(\"when no objectSet provided, only enables useOsdkObjects\", () => {\n const { result } = renderHook(\n () => useObjectTableData(TestObjectType),\n { wrapper },\n );\n\n expect(useOsdkObjects).toHaveBeenCalledWith(\n TestObjectType,\n expect.objectContaining({\n enabled: true,\n pageSize: 50,\n }),\n );\n\n expect(useObjectSet).toHaveBeenCalledWith(\n undefined,\n expect.objectContaining({\n enabled: false,\n pageSize: 50,\n }),\n );\n });\n\n it(\" when objectSet is provided, only enables useObjectSet\", () => {\n const { result } = renderHook(\n () =>\n useObjectTableData(\n TestObjectType,\n undefined,\n undefined,\n undefined,\n mockObjectSet,\n ),\n { wrapper },\n );\n\n expect(useOsdkObjects).toHaveBeenCalledWith(\n TestObjectType,\n expect.objectContaining({\n enabled: false,\n pageSize: 50,\n }),\n );\n\n expect(useObjectSet).toHaveBeenCalledWith(\n expect.anything(),\n expect.objectContaining({\n enabled: true,\n pageSize: 50,\n }),\n );\n });\n\n it(\"when objectSet is provided but type is interface, only enables useOsdkObjects \", () => {\n renderHook(\n () =>\n useObjectTableData(\n TestInterfaceType,\n undefined,\n undefined,\n undefined,\n mockObjectSet as any,\n ),\n { wrapper },\n );\n\n expect(useOsdkObjects).toHaveBeenCalledWith(\n TestInterfaceType,\n expect.objectContaining({\n enabled: true,\n pageSize: 50,\n }),\n );\n\n expect(useObjectSet).toHaveBeenCalledWith(\n undefined,\n expect.objectContaining({\n enabled: false,\n pageSize: 50,\n }),\n );\n });\n\n it(\"passes filter, orderBy and objectSetOptions to useObjectSet\", () => {\n const filterClause = {\n name: \"John\",\n } as unknown as WhereClause<TestObject>;\n const sorting: SortingState = [\n {\n id: \"name\",\n desc: false,\n },\n ];\n const objectSetOptions = {\n union: [mockObjectSet],\n intersect: [],\n subtract: [],\n };\n\n renderHook(\n () =>\n useObjectTableData(\n TestObjectType,\n undefined,\n filterClause,\n sorting,\n mockObjectSet,\n objectSetOptions,\n ),\n { wrapper },\n );\n\n expect(useObjectSet).toHaveBeenCalledWith(\n expect.anything(),\n expect.objectContaining({\n enabled: true,\n pageSize: 50,\n where: filterClause,\n orderBy: { name: \"asc\" },\n union: objectSetOptions.union,\n intersect: objectSetOptions.intersect,\n subtract: objectSetOptions.subtract,\n }),\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}