@object-ui/fields 4.0.1 → 4.0.3

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 (26) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.json +7 -7
  3. package/dist/packages/fields/src/__tests__/boolean-checkbox.test.d.ts +0 -0
  4. package/dist/packages/fields/src/__tests__/cell-renderers.test.d.ts +0 -0
  5. package/dist/packages/fields/src/__tests__/datetime-cell.test.d.ts +0 -0
  6. package/dist/packages/fields/src/__tests__/datetime-timezone.test.d.ts +0 -0
  7. package/dist/packages/fields/src/__tests__/extreme-inputs.test.d.ts +0 -0
  8. package/dist/packages/fields/src/__tests__/form-variants.test.d.ts +0 -0
  9. package/dist/packages/fields/src/lookup-depends-on.test.d.ts +0 -1
  10. package/dist/packages/fields/src/new-widgets.test.d.ts +0 -8
  11. package/dist/packages/fields/src/record-picker.test.d.ts +0 -1
  12. package/dist/packages/fields/src/remaining-widgets.test.d.ts +0 -1
  13. package/dist/packages/fields/src/text-rich-widgets.test.d.ts +0 -1
  14. package/dist/packages/fields/src/visual-widgets.test.d.ts +0 -1
  15. package/src/__tests__/boolean-checkbox.test.tsx +0 -74
  16. package/src/__tests__/cell-renderers.test.tsx +0 -1193
  17. package/src/__tests__/datetime-cell.test.tsx +0 -46
  18. package/src/__tests__/datetime-timezone.test.tsx +0 -770
  19. package/src/__tests__/extreme-inputs.test.tsx +0 -567
  20. package/src/__tests__/form-variants.test.tsx +0 -306
  21. package/src/lookup-depends-on.test.tsx +0 -130
  22. package/src/new-widgets.test.tsx +0 -302
  23. package/src/record-picker.test.tsx +0 -1703
  24. package/src/remaining-widgets.test.tsx +0 -211
  25. package/src/text-rich-widgets.test.tsx +0 -104
  26. package/src/visual-widgets.test.tsx +0 -97
@@ -1,302 +0,0 @@
1
- /**
2
- * ObjectUI
3
- * Copyright (c) 2024-present ObjectStack Inc.
4
- *
5
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- */
8
-
9
- import { describe, it, expect } from 'vitest';
10
- import { render, screen } from '@testing-library/react';
11
- import { ColorField } from './widgets/ColorField';
12
- import { SliderField } from './widgets/SliderField';
13
- import { RatingField } from './widgets/RatingField';
14
- import { CodeField } from './widgets/CodeField';
15
- import { AvatarField } from './widgets/AvatarField';
16
- import { AddressField } from './widgets/AddressField';
17
- import { GeolocationField } from './widgets/GeolocationField';
18
- import { SignatureField } from './widgets/SignatureField';
19
- import { QRCodeField } from './widgets/QRCodeField';
20
- import { MasterDetailField } from './widgets/MasterDetailField';
21
-
22
- const mockField: any = {
23
- name: 'test_field',
24
- label: 'Test Field',
25
- type: 'text',
26
- };
27
-
28
- describe('New Field Widgets', () => {
29
- describe('ColorField', () => {
30
- it('should render in readonly mode', () => {
31
- const { container } = render(
32
- <ColorField
33
- value="#ff0000"
34
- onChange={() => {}}
35
- field={mockField}
36
- readonly={true}
37
- />
38
- );
39
- expect(container).toBeDefined();
40
- expect(container.textContent).toContain('#ff0000');
41
- });
42
-
43
- it('should render in edit mode', () => {
44
- const { container } = render(
45
- <ColorField
46
- value="#00ff00"
47
- onChange={() => {}}
48
- field={mockField}
49
- />
50
- );
51
- expect(container).toBeDefined();
52
- });
53
- });
54
-
55
- describe('SliderField', () => {
56
- it('should render with value', () => {
57
- const { container } = render(
58
- <SliderField
59
- value={50}
60
- onChange={() => {}}
61
- field={mockField}
62
- />
63
- );
64
- expect(container).toBeDefined();
65
- expect(container.textContent).toContain('50');
66
- });
67
-
68
- it('should render in readonly mode', () => {
69
- const { container } = render(
70
- <SliderField
71
- value={75}
72
- onChange={() => {}}
73
- field={mockField}
74
- readonly={true}
75
- />
76
- );
77
- expect(container.textContent).toContain('75');
78
- });
79
- });
80
-
81
- describe('RatingField', () => {
82
- it('should render stars', () => {
83
- const { container } = render(
84
- <RatingField
85
- value={3}
86
- onChange={() => {}}
87
- field={mockField}
88
- />
89
- );
90
- expect(container).toBeDefined();
91
- expect(container.textContent).toContain('3 / 5');
92
- });
93
-
94
- it('should render in readonly mode', () => {
95
- const { container } = render(
96
- <RatingField
97
- value={4}
98
- onChange={() => {}}
99
- field={mockField}
100
- readonly={true}
101
- />
102
- );
103
- expect(container.textContent).toContain('4 / 5');
104
- });
105
- });
106
-
107
- describe('CodeField', () => {
108
- it('should render textarea', () => {
109
- const { container } = render(
110
- <CodeField
111
- value="console.log('hello');"
112
- onChange={() => {}}
113
- field={mockField}
114
- />
115
- );
116
- expect(container).toBeDefined();
117
- });
118
-
119
- it('should render readonly code', () => {
120
- const { container } = render(
121
- <CodeField
122
- value="const x = 42;"
123
- onChange={() => {}}
124
- field={mockField}
125
- readonly={true}
126
- />
127
- );
128
- expect(container).toBeDefined();
129
- expect(container.textContent).toContain('const x = 42;');
130
- });
131
- });
132
-
133
- describe('AvatarField', () => {
134
- it('should render avatar', () => {
135
- const { container } = render(
136
- <AvatarField
137
- value=""
138
- onChange={() => {}}
139
- field={mockField}
140
- />
141
- );
142
- expect(container).toBeDefined();
143
- });
144
-
145
- it('should render readonly avatar', () => {
146
- const { container } = render(
147
- <AvatarField
148
- value="https://example.com/avatar.jpg"
149
- onChange={() => {}}
150
- field={mockField}
151
- readonly={true}
152
- />
153
- );
154
- expect(container).toBeDefined();
155
- });
156
- });
157
-
158
- describe('AddressField', () => {
159
- it('should render address fields', () => {
160
- const { container } = render(
161
- <AddressField
162
- value={{ street: '123 Main St', city: 'San Francisco' }}
163
- onChange={() => {}}
164
- field={mockField}
165
- />
166
- );
167
- expect(container).toBeDefined();
168
- });
169
-
170
- it('should render readonly address', () => {
171
- const { container } = render(
172
- <AddressField
173
- value={{ street: '456 Oak Ave', city: 'New York', state: 'NY' }}
174
- onChange={() => {}}
175
- field={mockField}
176
- readonly={true}
177
- />
178
- );
179
- expect(container.textContent).toContain('456 Oak Ave');
180
- });
181
- });
182
-
183
- describe('GeolocationField', () => {
184
- it('should render geolocation inputs', () => {
185
- const { container } = render(
186
- <GeolocationField
187
- value={{ latitude: 37.7749, longitude: -122.4194 }}
188
- onChange={() => {}}
189
- field={mockField}
190
- />
191
- );
192
- expect(container).toBeDefined();
193
- });
194
-
195
- it('should render readonly geolocation', () => {
196
- const { container } = render(
197
- <GeolocationField
198
- value={{ latitude: 40.7128, longitude: -74.0060 }}
199
- onChange={() => {}}
200
- field={mockField}
201
- readonly={true}
202
- />
203
- );
204
- expect(container.textContent).toContain('40.712800');
205
- });
206
- });
207
-
208
- describe('SignatureField', () => {
209
- it('should render signature canvas', () => {
210
- const { container } = render(
211
- <SignatureField
212
- value=""
213
- field={mockField}
214
- onChange={() => {}}
215
- />
216
- );
217
- expect(container).toBeDefined();
218
- expect(container.querySelector('canvas')).toBeDefined();
219
- });
220
-
221
- it('should render readonly signature', () => {
222
- const { container } = render(
223
- <SignatureField
224
- value="data:image/png;base64,..."
225
- field={mockField}
226
- onChange={() => {}}
227
- readonly={true}
228
- />
229
- );
230
- expect(container).toBeDefined();
231
- });
232
- });
233
-
234
- describe('QRCodeField', () => {
235
- it('should render QR code input', () => {
236
- const { container } = render(
237
- <QRCodeField
238
- value="https://example.com"
239
- onChange={() => {}}
240
- field={mockField}
241
- />
242
- );
243
- expect(container).toBeDefined();
244
- });
245
-
246
- it('should render readonly QR code', () => {
247
- const { container } = render(
248
- <QRCodeField
249
- value="Test Data"
250
- onChange={() => {}}
251
- field={mockField}
252
- readonly={true}
253
- />
254
- );
255
- expect(container.textContent).toContain('Test Data');
256
- });
257
- });
258
-
259
- describe('MasterDetailField', () => {
260
- it('should render empty state', () => {
261
- const { container } = render(
262
- <MasterDetailField
263
- value={[]}
264
- field={mockField}
265
- onChange={() => {}}
266
- />
267
- );
268
- expect(container).toBeDefined();
269
- });
270
-
271
- it('should render with items', () => {
272
- const items = [
273
- { id: '1', label: 'Item 1' },
274
- { id: '2', label: 'Item 2' },
275
- ];
276
- const { container } = render(
277
- <MasterDetailField
278
- value={items}
279
- field={mockField}
280
- onChange={() => {}}
281
- />
282
- );
283
- expect(container.textContent).toContain('Item 1');
284
- expect(container.textContent).toContain('Item 2');
285
- });
286
-
287
- it('should render readonly items', () => {
288
- const items = [
289
- { id: '1', label: 'Item A' },
290
- ];
291
- const { container } = render(
292
- <MasterDetailField
293
- value={items}
294
- field={mockField}
295
- onChange={() => {}}
296
- readonly={true}
297
- />
298
- );
299
- expect(container.textContent).toContain('Item A');
300
- });
301
- });
302
- });