@axinom/mosaic-ui 0.65.4 → 0.65.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-ui",
3
- "version": "0.65.4",
3
+ "version": "0.65.5",
4
4
  "description": "UI components for building Axinom Mosaic applications",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -112,5 +112,5 @@
112
112
  "publishConfig": {
113
113
  "access": "public"
114
114
  },
115
- "gitHead": "ac37c5be8b4c739425573c41be818692020f1f25"
115
+ "gitHead": "2dccfe1c1492cbb54be6b6e9af3602e717cdce57"
116
116
  }
@@ -1,14 +1,5 @@
1
- import { TagsRenderer } from '../../List';
2
1
  import { createConnectionRenderer } from './CreateConnectionRenderer';
3
2
 
4
- jest.mock('../../List', () => ({
5
- TagsRenderer: jest.fn(),
6
- }));
7
-
8
- const mockTagsRenderer = TagsRenderer as jest.MockedFunction<
9
- typeof TagsRenderer
10
- >;
11
-
12
3
  interface TestConnection {
13
4
  nodes: { id: string; name: string }[];
14
5
  }
@@ -18,70 +9,7 @@ interface StringConnection {
18
9
  }
19
10
 
20
11
  describe('createConnectionRenderer', () => {
21
- beforeEach(() => {
22
- jest.clearAllMocks();
23
- });
24
-
25
- describe('with renderAsTags = true (default)', () => {
26
- it('should call TagsRenderer with mapped values when renderAsTags is true', () => {
27
- const mockReturnValue = 'Mocked Tags JSX Element';
28
- mockTagsRenderer.mockReturnValue(mockReturnValue as any);
29
-
30
- const connection: TestConnection = {
31
- nodes: [
32
- { id: '1', name: 'Item 1' },
33
- { id: '2', name: 'Item 2' },
34
- ],
35
- };
36
-
37
- const selector = (item: { id: string; name: string }) => item.name;
38
- const renderer = createConnectionRenderer<TestConnection>(selector);
39
- const result = renderer(connection);
40
-
41
- expect(mockTagsRenderer).toHaveBeenCalledWith(['Item 1', 'Item 2']);
42
- expect(result).toBe(mockReturnValue);
43
- });
44
-
45
- it('should throw error when nodes is undefined', () => {
46
- const connection = { nodes: undefined } as unknown as TestConnection;
47
- const selector = (item: { id: string; name: string }) => item.name;
48
- const renderer = createConnectionRenderer<TestConnection>(selector);
49
-
50
- expect(() => renderer(connection)).toThrow();
51
- expect(mockTagsRenderer).not.toHaveBeenCalled();
52
- });
53
-
54
- it('should throw error when value is null', () => {
55
- const selector = (item: { id: string; name: string }) => item.name;
56
- const renderer = createConnectionRenderer<TestConnection>(selector);
57
-
58
- expect(() => renderer(null)).toThrow();
59
- expect(mockTagsRenderer).not.toHaveBeenCalled();
60
- });
61
-
62
- it('should throw error when value is undefined', () => {
63
- const selector = (item: { id: string; name: string }) => item.name;
64
- const renderer = createConnectionRenderer<TestConnection>(selector);
65
-
66
- expect(() => renderer(undefined)).toThrow();
67
- expect(mockTagsRenderer).not.toHaveBeenCalled();
68
- });
69
-
70
- it('should call TagsRenderer with empty array when nodes is empty', () => {
71
- const mockReturnValue = 'Empty Tags JSX Element';
72
- mockTagsRenderer.mockReturnValue(mockReturnValue as any);
73
-
74
- const connection: TestConnection = { nodes: [] };
75
- const selector = (item: { id: string; name: string }) => item.name;
76
- const renderer = createConnectionRenderer<TestConnection>(selector);
77
- const result = renderer(connection);
78
-
79
- expect(mockTagsRenderer).toHaveBeenCalledWith([]);
80
- expect(result).toBe(mockReturnValue);
81
- });
82
- });
83
-
84
- describe('with renderAsTags = false', () => {
12
+ describe('basic functionality', () => {
85
13
  it('should return comma-separated string using selector', () => {
86
14
  const connection: TestConnection = {
87
15
  nodes: [
@@ -92,13 +20,9 @@ describe('createConnectionRenderer', () => {
92
20
  };
93
21
 
94
22
  const selector = (item: { id: string; name: string }) => item.name;
95
- const renderer = createConnectionRenderer<TestConnection>(
96
- selector,
97
- false,
98
- );
23
+ const renderer = createConnectionRenderer<TestConnection>(selector);
99
24
  const result = renderer(connection);
100
25
 
101
- expect(mockTagsRenderer).not.toHaveBeenCalled();
102
26
  expect(result).toBe('Item 1, Item 2, Item 3');
103
27
  });
104
28
 
@@ -108,10 +32,7 @@ describe('createConnectionRenderer', () => {
108
32
  };
109
33
 
110
34
  const selector = (item: string) => item;
111
- const renderer = createConnectionRenderer<StringConnection>(
112
- selector,
113
- false,
114
- );
35
+ const renderer = createConnectionRenderer<StringConnection>(selector);
115
36
  const result = renderer(connection);
116
37
 
117
38
  expect(result).toBe('apple, banana, cherry');
@@ -127,10 +48,7 @@ describe('createConnectionRenderer', () => {
127
48
 
128
49
  const selector = (item: { id: string; name: string }, index: number) =>
129
50
  `${index + 1}. ${item.name} (${item.id})`;
130
- const renderer = createConnectionRenderer<TestConnection>(
131
- selector,
132
- false,
133
- );
51
+ const renderer = createConnectionRenderer<TestConnection>(selector);
134
52
  const result = renderer(connection);
135
53
 
136
54
  expect(result).toBe('1. Item 1 (1), 2. Item 2 (2)');
@@ -139,10 +57,7 @@ describe('createConnectionRenderer', () => {
139
57
  it('should return empty string when nodes array is empty', () => {
140
58
  const connection: TestConnection = { nodes: [] };
141
59
  const selector = (item: { id: string; name: string }) => item.name;
142
- const renderer = createConnectionRenderer<TestConnection>(
143
- selector,
144
- false,
145
- );
60
+ const renderer = createConnectionRenderer<TestConnection>(selector);
146
61
  const result = renderer(connection);
147
62
 
148
63
  expect(result).toBe('');
@@ -160,25 +75,33 @@ describe('createConnectionRenderer', () => {
160
75
  };
161
76
 
162
77
  const selector = (item: { id: number; value: number }) => item.value;
163
- const renderer = createConnectionRenderer<NumberConnection>(
164
- selector,
165
- false,
166
- );
78
+ const renderer = createConnectionRenderer<NumberConnection>(selector);
167
79
  const result = renderer(connection);
168
80
 
169
81
  expect(result).toBe('100, 200');
170
82
  });
171
83
 
172
- it('should throw error when connection.nodes is undefined and renderAsTags is false', () => {
84
+ it('should throw error when connection.nodes is undefined', () => {
173
85
  const connection = { nodes: undefined } as unknown as TestConnection;
174
86
  const selector = (item: { id: string; name: string }) => item.name;
175
- const renderer = createConnectionRenderer<TestConnection>(
176
- selector,
177
- false,
178
- );
87
+ const renderer = createConnectionRenderer<TestConnection>(selector);
179
88
 
180
89
  expect(() => renderer(connection)).toThrow();
181
90
  });
91
+
92
+ it('should throw error when value is null', () => {
93
+ const selector = (item: { id: string; name: string }) => item.name;
94
+ const renderer = createConnectionRenderer<TestConnection>(selector);
95
+
96
+ expect(() => renderer(null)).toThrow();
97
+ });
98
+
99
+ it('should throw error when value is undefined', () => {
100
+ const selector = (item: { id: string; name: string }) => item.name;
101
+ const renderer = createConnectionRenderer<TestConnection>(selector);
102
+
103
+ expect(() => renderer(undefined)).toThrow();
104
+ });
182
105
  });
183
106
 
184
107
  describe('edge cases', () => {
@@ -188,10 +111,7 @@ describe('createConnectionRenderer', () => {
188
111
  };
189
112
 
190
113
  const selector = (item: string) => item;
191
- const renderer = createConnectionRenderer<StringConnection>(
192
- selector,
193
- false,
194
- );
114
+ const renderer = createConnectionRenderer<StringConnection>(selector);
195
115
  const result = renderer(connection);
196
116
 
197
117
  expect(result).toBe('item, with comma, item with "quotes", normal item');
@@ -207,10 +127,7 @@ describe('createConnectionRenderer', () => {
207
127
  };
208
128
 
209
129
  const selector = (item: { id: string; name: string }) => item.name;
210
- const renderer = createConnectionRenderer<TestConnection>(
211
- selector,
212
- false,
213
- );
130
+ const renderer = createConnectionRenderer<TestConnection>(selector);
214
131
  const result = renderer(connection);
215
132
 
216
133
  expect(result).toBe(', Item 2, ');
@@ -222,10 +139,7 @@ describe('createConnectionRenderer', () => {
222
139
  };
223
140
 
224
141
  const selector = (item: { id: string; name: string }) => item.name;
225
- const renderer = createConnectionRenderer<TestConnection>(
226
- selector,
227
- false,
228
- );
142
+ const renderer = createConnectionRenderer<TestConnection>(selector);
229
143
  const result = renderer(connection);
230
144
 
231
145
  expect(result).toBe('Single Item');
@@ -247,10 +161,7 @@ describe('createConnectionRenderer', () => {
247
161
 
248
162
  const selector = (item: { customField: number; label: string }) =>
249
163
  `${item.label}: ${item.customField}`;
250
- const renderer = createConnectionRenderer<CustomConnection>(
251
- selector,
252
- false,
253
- );
164
+ const renderer = createConnectionRenderer<CustomConnection>(selector);
254
165
  const result = renderer(connection);
255
166
 
256
167
  expect(result).toBe('Custom 1: 42, Custom 2: 84');
@@ -1,5 +1,4 @@
1
1
  import { ReactNode } from 'react';
2
- import { TagsRenderer } from '../../List';
3
2
 
4
3
  interface Connection {
5
4
  nodes: unknown[];
@@ -19,14 +18,14 @@ export type SelectorFunction<T> = (
19
18
  */
20
19
  export function createConnectionRenderer<T extends Connection>(
21
20
  selector: SelectorFunction<T['nodes'][number]>,
22
- renderAsTags = true,
21
+ // renderAsTags = true,
23
22
  ): (val: unknown) => string | ReactNode {
24
23
  const ConnectionRenderer = (val: unknown): string | ReactNode => {
25
24
  const value = val as T;
26
25
 
27
- if (renderAsTags) {
28
- return TagsRenderer(value.nodes.map(selector));
29
- }
26
+ // if (renderAsTags) {
27
+ // return TagsRenderer(value.nodes.map(selector));
28
+ // }
30
29
 
31
30
  return value.nodes.map(selector).join(', ');
32
31
  };