@pie-lib/config-ui 13.1.0-beta.7 → 14.0.0-next.35

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 (233) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +11 -0
  2. package/dist/alert-dialog.d.ts +44 -0
  3. package/dist/alert-dialog.js +47 -0
  4. package/dist/checkbox.d.ts +34 -0
  5. package/dist/checkbox.js +57 -0
  6. package/dist/choice-configuration/feedback-menu.d.ts +32 -0
  7. package/dist/choice-configuration/feedback-menu.js +85 -0
  8. package/dist/choice-configuration/index.d.ts +62 -0
  9. package/dist/choice-configuration/index.js +240 -0
  10. package/dist/choice-utils.d.ts +21 -0
  11. package/dist/choice-utils.js +15 -0
  12. package/dist/feedback-config/feedback-selector.d.ts +33 -0
  13. package/dist/feedback-config/feedback-selector.js +92 -0
  14. package/dist/feedback-config/group.d.ts +21 -0
  15. package/dist/feedback-config/group.js +33 -0
  16. package/dist/feedback-config/index.d.ts +48 -0
  17. package/dist/feedback-config/index.js +96 -0
  18. package/dist/form-section.d.ts +25 -0
  19. package/dist/form-section.js +25 -0
  20. package/dist/fraction-to-number.d.ts +7 -0
  21. package/dist/fraction-to-number.js +9 -0
  22. package/dist/help.d.ts +41 -0
  23. package/dist/help.js +62 -0
  24. package/dist/index.d.ts +31 -0
  25. package/dist/index.js +34 -0
  26. package/dist/input.d.ts +29 -0
  27. package/dist/input.js +65 -0
  28. package/dist/inputs.d.ts +63 -0
  29. package/dist/inputs.js +70 -0
  30. package/dist/langs.d.ts +41 -0
  31. package/dist/langs.js +76 -0
  32. package/dist/layout/config-layout.d.ts +10 -0
  33. package/dist/layout/config-layout.js +75 -0
  34. package/dist/layout/index.d.ts +11 -0
  35. package/dist/layout/index.js +10 -0
  36. package/dist/layout/layout-contents.d.ts +21 -0
  37. package/dist/layout/layout-contents.js +70 -0
  38. package/dist/layout/settings-box.d.ts +19 -0
  39. package/dist/layout/settings-box.js +32 -0
  40. package/dist/mui-box/index.d.ts +21 -0
  41. package/dist/mui-box/index.js +47 -0
  42. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  43. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +7 -0
  44. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  45. package/dist/node_modules/.bun/@babel_runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +8 -0
  46. package/dist/node_modules/.bun/react-measure@2.5.2_6dbf9a050bc9aadb/node_modules/react-measure/dist/index.esm.js +122 -0
  47. package/dist/node_modules/.bun/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js +276 -0
  48. package/dist/number-text-field-custom.d.ts +51 -0
  49. package/dist/number-text-field-custom.js +192 -0
  50. package/dist/number-text-field.d.ts +47 -0
  51. package/dist/number-text-field.js +122 -0
  52. package/dist/radio-with-label.d.ts +25 -0
  53. package/dist/radio-with-label.js +27 -0
  54. package/dist/settings/display-size.d.ts +26 -0
  55. package/dist/settings/display-size.js +45 -0
  56. package/dist/settings/index.d.ts +45 -0
  57. package/dist/settings/index.js +63 -0
  58. package/dist/settings/panel.d.ts +27 -0
  59. package/dist/settings/panel.js +201 -0
  60. package/dist/settings/settings-radio-label.d.ts +25 -0
  61. package/dist/settings/settings-radio-label.js +29 -0
  62. package/dist/settings/toggle.d.ts +25 -0
  63. package/dist/settings/toggle.js +33 -0
  64. package/dist/tabs/index.d.ts +22 -0
  65. package/dist/tabs/index.js +39 -0
  66. package/dist/tags-input/index.d.ts +21 -0
  67. package/dist/tags-input/index.js +83 -0
  68. package/dist/two-choice.d.ts +43 -0
  69. package/dist/two-choice.js +79 -0
  70. package/dist/with-stateful-model.d.ts +42 -0
  71. package/dist/with-stateful-model.js +32 -0
  72. package/package.json +31 -19
  73. package/CHANGELOG.json +0 -32
  74. package/CHANGELOG.md +0 -2419
  75. package/lib/__tests__/alert-dialog.test.js +0 -262
  76. package/lib/__tests__/alert-dialog.test.js.map +0 -1
  77. package/lib/__tests__/checkbox.test.js +0 -227
  78. package/lib/__tests__/checkbox.test.js.map +0 -1
  79. package/lib/__tests__/choice-utils.test.js +0 -14
  80. package/lib/__tests__/choice-utils.test.js.map +0 -1
  81. package/lib/__tests__/form-section.test.js +0 -252
  82. package/lib/__tests__/form-section.test.js.map +0 -1
  83. package/lib/__tests__/help.test.js +0 -270
  84. package/lib/__tests__/help.test.js.map +0 -1
  85. package/lib/__tests__/input.test.js +0 -268
  86. package/lib/__tests__/input.test.js.map +0 -1
  87. package/lib/__tests__/langs.test.js +0 -541
  88. package/lib/__tests__/langs.test.js.map +0 -1
  89. package/lib/__tests__/number-text-field-custom.test.js +0 -362
  90. package/lib/__tests__/number-text-field-custom.test.js.map +0 -1
  91. package/lib/__tests__/number-text-field.test.js +0 -421
  92. package/lib/__tests__/number-text-field.test.js.map +0 -1
  93. package/lib/__tests__/radio-with-label.test.js +0 -233
  94. package/lib/__tests__/radio-with-label.test.js.map +0 -1
  95. package/lib/__tests__/settings-panel.test.js +0 -184
  96. package/lib/__tests__/settings-panel.test.js.map +0 -1
  97. package/lib/__tests__/settings.test.js +0 -653
  98. package/lib/__tests__/settings.test.js.map +0 -1
  99. package/lib/__tests__/tabs.test.js +0 -211
  100. package/lib/__tests__/tabs.test.js.map +0 -1
  101. package/lib/__tests__/two-choice.test.js +0 -124
  102. package/lib/__tests__/two-choice.test.js.map +0 -1
  103. package/lib/__tests__/with-stateful-model.test.js +0 -221
  104. package/lib/__tests__/with-stateful-model.test.js.map +0 -1
  105. package/lib/alert-dialog.js +0 -68
  106. package/lib/alert-dialog.js.map +0 -1
  107. package/lib/checkbox.js +0 -84
  108. package/lib/checkbox.js.map +0 -1
  109. package/lib/choice-configuration/__tests__/feedback-menu.test.js +0 -287
  110. package/lib/choice-configuration/__tests__/feedback-menu.test.js.map +0 -1
  111. package/lib/choice-configuration/__tests__/index.test.js +0 -253
  112. package/lib/choice-configuration/__tests__/index.test.js.map +0 -1
  113. package/lib/choice-configuration/feedback-menu.js +0 -129
  114. package/lib/choice-configuration/feedback-menu.js.map +0 -1
  115. package/lib/choice-configuration/index.js +0 -381
  116. package/lib/choice-configuration/index.js.map +0 -1
  117. package/lib/choice-utils.js +0 -42
  118. package/lib/choice-utils.js.map +0 -1
  119. package/lib/feedback-config/__tests__/feedback-config.test.js +0 -201
  120. package/lib/feedback-config/__tests__/feedback-config.test.js.map +0 -1
  121. package/lib/feedback-config/__tests__/feedback-selector.test.js +0 -177
  122. package/lib/feedback-config/__tests__/feedback-selector.test.js.map +0 -1
  123. package/lib/feedback-config/feedback-selector.js +0 -155
  124. package/lib/feedback-config/feedback-selector.js.map +0 -1
  125. package/lib/feedback-config/group.js +0 -61
  126. package/lib/feedback-config/group.js.map +0 -1
  127. package/lib/feedback-config/index.js +0 -146
  128. package/lib/feedback-config/index.js.map +0 -1
  129. package/lib/form-section.js +0 -44
  130. package/lib/form-section.js.map +0 -1
  131. package/lib/help.js +0 -106
  132. package/lib/help.js.map +0 -1
  133. package/lib/index.js +0 -186
  134. package/lib/index.js.map +0 -1
  135. package/lib/input.js +0 -106
  136. package/lib/input.js.map +0 -1
  137. package/lib/inputs.js +0 -105
  138. package/lib/inputs.js.map +0 -1
  139. package/lib/langs.js +0 -136
  140. package/lib/langs.js.map +0 -1
  141. package/lib/layout/__tests__/config.layout.test.js +0 -70
  142. package/lib/layout/__tests__/config.layout.test.js.map +0 -1
  143. package/lib/layout/__tests__/layout-content.test.js +0 -6
  144. package/lib/layout/__tests__/layout-content.test.js.map +0 -1
  145. package/lib/layout/config-layout.js +0 -137
  146. package/lib/layout/config-layout.js.map +0 -1
  147. package/lib/layout/index.js +0 -21
  148. package/lib/layout/index.js.map +0 -1
  149. package/lib/layout/layout-contents.js +0 -160
  150. package/lib/layout/layout-contents.js.map +0 -1
  151. package/lib/layout/settings-box.js +0 -57
  152. package/lib/layout/settings-box.js.map +0 -1
  153. package/lib/mui-box/index.js +0 -63
  154. package/lib/mui-box/index.js.map +0 -1
  155. package/lib/number-text-field-custom.js +0 -376
  156. package/lib/number-text-field-custom.js.map +0 -1
  157. package/lib/number-text-field.js +0 -229
  158. package/lib/number-text-field.js.map +0 -1
  159. package/lib/radio-with-label.js +0 -48
  160. package/lib/radio-with-label.js.map +0 -1
  161. package/lib/settings/display-size.js +0 -61
  162. package/lib/settings/display-size.js.map +0 -1
  163. package/lib/settings/index.js +0 -110
  164. package/lib/settings/index.js.map +0 -1
  165. package/lib/settings/panel.js +0 -392
  166. package/lib/settings/panel.js.map +0 -1
  167. package/lib/settings/settings-radio-label.js +0 -51
  168. package/lib/settings/settings-radio-label.js.map +0 -1
  169. package/lib/settings/toggle.js +0 -63
  170. package/lib/settings/toggle.js.map +0 -1
  171. package/lib/tabs/index.js +0 -75
  172. package/lib/tabs/index.js.map +0 -1
  173. package/lib/tags-input/__tests__/index.test.js +0 -183
  174. package/lib/tags-input/__tests__/index.test.js.map +0 -1
  175. package/lib/tags-input/index.js +0 -149
  176. package/lib/tags-input/index.js.map +0 -1
  177. package/lib/two-choice.js +0 -136
  178. package/lib/two-choice.js.map +0 -1
  179. package/lib/with-stateful-model.js +0 -61
  180. package/lib/with-stateful-model.js.map +0 -1
  181. package/src/__tests__/alert-dialog.test.jsx +0 -183
  182. package/src/__tests__/checkbox.test.jsx +0 -152
  183. package/src/__tests__/choice-utils.test.js +0 -12
  184. package/src/__tests__/form-section.test.jsx +0 -328
  185. package/src/__tests__/help.test.jsx +0 -184
  186. package/src/__tests__/input.test.jsx +0 -156
  187. package/src/__tests__/langs.test.jsx +0 -376
  188. package/src/__tests__/number-text-field-custom.test.jsx +0 -255
  189. package/src/__tests__/number-text-field.test.jsx +0 -263
  190. package/src/__tests__/radio-with-label.test.jsx +0 -155
  191. package/src/__tests__/settings-panel.test.js +0 -187
  192. package/src/__tests__/settings.test.jsx +0 -452
  193. package/src/__tests__/tabs.test.jsx +0 -188
  194. package/src/__tests__/two-choice.test.js +0 -110
  195. package/src/__tests__/with-stateful-model.test.jsx +0 -139
  196. package/src/alert-dialog.jsx +0 -75
  197. package/src/checkbox.jsx +0 -61
  198. package/src/choice-configuration/__tests__/feedback-menu.test.jsx +0 -151
  199. package/src/choice-configuration/__tests__/index.test.jsx +0 -234
  200. package/src/choice-configuration/feedback-menu.jsx +0 -96
  201. package/src/choice-configuration/index.jsx +0 -357
  202. package/src/choice-utils.js +0 -30
  203. package/src/feedback-config/__tests__/feedback-config.test.jsx +0 -141
  204. package/src/feedback-config/__tests__/feedback-selector.test.jsx +0 -97
  205. package/src/feedback-config/feedback-selector.jsx +0 -112
  206. package/src/feedback-config/group.jsx +0 -51
  207. package/src/feedback-config/index.jsx +0 -111
  208. package/src/form-section.jsx +0 -31
  209. package/src/help.jsx +0 -79
  210. package/src/index.js +0 -55
  211. package/src/input.jsx +0 -72
  212. package/src/inputs.jsx +0 -69
  213. package/src/langs.jsx +0 -111
  214. package/src/layout/__tests__/config.layout.test.jsx +0 -59
  215. package/src/layout/__tests__/layout-content.test.jsx +0 -3
  216. package/src/layout/config-layout.jsx +0 -103
  217. package/src/layout/index.js +0 -4
  218. package/src/layout/layout-contents.jsx +0 -117
  219. package/src/layout/settings-box.jsx +0 -32
  220. package/src/mui-box/index.jsx +0 -56
  221. package/src/number-text-field-custom.jsx +0 -333
  222. package/src/number-text-field.jsx +0 -215
  223. package/src/radio-with-label.jsx +0 -30
  224. package/src/settings/display-size.jsx +0 -53
  225. package/src/settings/index.js +0 -83
  226. package/src/settings/panel.jsx +0 -333
  227. package/src/settings/settings-radio-label.jsx +0 -32
  228. package/src/settings/toggle.jsx +0 -46
  229. package/src/tabs/index.jsx +0 -47
  230. package/src/tags-input/__tests__/index.test.jsx +0 -113
  231. package/src/tags-input/index.jsx +0 -116
  232. package/src/two-choice.jsx +0 -90
  233. package/src/with-stateful-model.jsx +0 -36
@@ -1,287 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
- var _react = _interopRequireDefault(require("react"));
7
- var _react2 = require("@testing-library/react");
8
- var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
9
- var _feedbackMenu = _interopRequireDefault(require("../feedback-menu"));
10
- describe('feedback-menu', function () {
11
- var onChange = jest.fn();
12
- beforeEach(function () {
13
- onChange.mockClear();
14
- });
15
- describe('rendering', function () {
16
- it('renders feedback menu with default options', function () {
17
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
18
- onChange: onChange,
19
- classes: {}
20
- })),
21
- container = _render.container;
22
- expect(container.firstChild).toBeInTheDocument();
23
- });
24
- it('renders menu with feedback type selector', function () {
25
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
26
- onChange: onChange,
27
- value: {
28
- type: 'default'
29
- },
30
- classes: {}
31
- }));
32
- // Menu button should be in the document
33
- expect(_react2.screen.getByRole('button')).toBeInTheDocument();
34
- });
35
- it('renders with no feedback type', function () {
36
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
37
- onChange: onChange,
38
- value: {
39
- type: 'none'
40
- },
41
- classes: {}
42
- }));
43
- expect(_react2.screen.getByRole('button')).toBeInTheDocument();
44
- });
45
- it('renders with custom feedback type', function () {
46
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
47
- onChange: onChange,
48
- value: {
49
- type: 'custom'
50
- },
51
- classes: {}
52
- }));
53
- expect(_react2.screen.getByRole('button')).toBeInTheDocument();
54
- });
55
- it('renders feedback icon button', function () {
56
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
57
- onChange: onChange,
58
- classes: {}
59
- }));
60
- var button = _react2.screen.getByRole('button');
61
- expect(button).toBeInTheDocument();
62
- });
63
- });
64
- describe('user interactions', function () {
65
- it('opens menu when button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
66
- var user, button;
67
- return _regenerator["default"].wrap(function (_context) {
68
- while (1) switch (_context.prev = _context.next) {
69
- case 0:
70
- user = _userEvent["default"].setup();
71
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
72
- onChange: onChange,
73
- value: {
74
- type: 'default'
75
- },
76
- classes: {}
77
- }));
78
- button = _react2.screen.getByRole('button');
79
- _context.next = 1;
80
- return user.click(button);
81
- case 1:
82
- // Menu items should appear
83
- expect(_react2.screen.getByText('No Feedback')).toBeInTheDocument();
84
- expect(_react2.screen.getByText('Default')).toBeInTheDocument();
85
- expect(_react2.screen.getByText('Custom')).toBeInTheDocument();
86
- case 2:
87
- case "end":
88
- return _context.stop();
89
- }
90
- }, _callee);
91
- })));
92
- it('calls onChange with "none" when No Feedback is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
93
- var user, button, noFeedbackOption;
94
- return _regenerator["default"].wrap(function (_context2) {
95
- while (1) switch (_context2.prev = _context2.next) {
96
- case 0:
97
- user = _userEvent["default"].setup();
98
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
99
- onChange: onChange,
100
- value: {
101
- type: 'default'
102
- },
103
- classes: {}
104
- }));
105
- button = _react2.screen.getByRole('button');
106
- _context2.next = 1;
107
- return user.click(button);
108
- case 1:
109
- noFeedbackOption = _react2.screen.getByText('No Feedback');
110
- _context2.next = 2;
111
- return user.click(noFeedbackOption);
112
- case 2:
113
- expect(onChange).toHaveBeenCalledWith('none');
114
- case 3:
115
- case "end":
116
- return _context2.stop();
117
- }
118
- }, _callee2);
119
- })));
120
- it('calls onChange with "default" when Default is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
121
- var user, button, defaultOption;
122
- return _regenerator["default"].wrap(function (_context3) {
123
- while (1) switch (_context3.prev = _context3.next) {
124
- case 0:
125
- user = _userEvent["default"].setup();
126
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
127
- onChange: onChange,
128
- value: {
129
- type: 'none'
130
- },
131
- classes: {}
132
- }));
133
- button = _react2.screen.getByRole('button');
134
- _context3.next = 1;
135
- return user.click(button);
136
- case 1:
137
- defaultOption = _react2.screen.getByText('Default');
138
- _context3.next = 2;
139
- return user.click(defaultOption);
140
- case 2:
141
- expect(onChange).toHaveBeenCalledWith('default');
142
- case 3:
143
- case "end":
144
- return _context3.stop();
145
- }
146
- }, _callee3);
147
- })));
148
- it('calls onChange with "custom" when Custom is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
149
- var user, button, customOption;
150
- return _regenerator["default"].wrap(function (_context4) {
151
- while (1) switch (_context4.prev = _context4.next) {
152
- case 0:
153
- user = _userEvent["default"].setup();
154
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
155
- onChange: onChange,
156
- value: {
157
- type: 'none'
158
- },
159
- classes: {}
160
- }));
161
- button = _react2.screen.getByRole('button');
162
- _context4.next = 1;
163
- return user.click(button);
164
- case 1:
165
- customOption = _react2.screen.getByText('Custom');
166
- _context4.next = 2;
167
- return user.click(customOption);
168
- case 2:
169
- expect(onChange).toHaveBeenCalledWith('custom');
170
- case 3:
171
- case "end":
172
- return _context4.stop();
173
- }
174
- }, _callee4);
175
- })));
176
- it('closes menu after selection', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
177
- var user, button, noFeedbackOption;
178
- return _regenerator["default"].wrap(function (_context5) {
179
- while (1) switch (_context5.prev = _context5.next) {
180
- case 0:
181
- user = _userEvent["default"].setup();
182
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
183
- onChange: onChange,
184
- value: {
185
- type: 'default'
186
- },
187
- classes: {}
188
- }));
189
- button = _react2.screen.getByRole('button');
190
- _context5.next = 1;
191
- return user.click(button);
192
- case 1:
193
- expect(_react2.screen.getByText('No Feedback')).toBeInTheDocument();
194
- noFeedbackOption = _react2.screen.getByText('No Feedback');
195
- _context5.next = 2;
196
- return user.click(noFeedbackOption);
197
- case 2:
198
- // Menu should close after selection
199
- expect(onChange).toHaveBeenCalledWith('none');
200
- case 3:
201
- case "end":
202
- return _context5.stop();
203
- }
204
- }, _callee5);
205
- })));
206
- });
207
- describe('feedback type indicators', function () {
208
- it('shows correct icon color for default feedback', function () {
209
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
210
- onChange: onChange,
211
- value: {
212
- type: 'default'
213
- },
214
- classes: {}
215
- })),
216
- container = _render2.container;
217
- // Icon should be present with primary color
218
- expect(container.querySelector('svg')).toBeInTheDocument();
219
- });
220
- it('shows correct icon color for custom feedback', function () {
221
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
222
- onChange: onChange,
223
- value: {
224
- type: 'custom'
225
- },
226
- classes: {}
227
- })),
228
- container = _render3.container;
229
- // Icon should be present with primary color
230
- expect(container.querySelector('svg')).toBeInTheDocument();
231
- });
232
- it('shows correct icon color for disabled feedback', function () {
233
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
234
- onChange: onChange,
235
- value: {
236
- type: 'none'
237
- },
238
- classes: {}
239
- })),
240
- container = _render4.container;
241
- // Icon should be present with disabled color
242
- expect(container.querySelector('svg')).toBeInTheDocument();
243
- });
244
- });
245
- describe('aria labels', function () {
246
- it('has aria-label on button for default feedback', function () {
247
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
248
- onChange: onChange,
249
- value: {
250
- type: 'default'
251
- },
252
- classes: {}
253
- }));
254
- var button = _react2.screen.getByRole('button', {
255
- name: /Default Feedback/i
256
- });
257
- expect(button).toBeInTheDocument();
258
- });
259
- it('has aria-label on button for custom feedback', function () {
260
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
261
- onChange: onChange,
262
- value: {
263
- type: 'custom'
264
- },
265
- classes: {}
266
- }));
267
- var button = _react2.screen.getByRole('button', {
268
- name: /Custom Feedback/i
269
- });
270
- expect(button).toBeInTheDocument();
271
- });
272
- it('has aria-label on button for disabled feedback', function () {
273
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_feedbackMenu["default"], {
274
- onChange: onChange,
275
- value: {
276
- type: 'none'
277
- },
278
- classes: {}
279
- }));
280
- var button = _react2.screen.getByRole('button', {
281
- name: /Feedback disabled/i
282
- });
283
- expect(button).toBeInTheDocument();
284
- });
285
- });
286
- });
287
- //# sourceMappingURL=feedback-menu.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-menu.test.js","names":["_react","_interopRequireDefault","require","_react2","_userEvent","_feedbackMenu","describe","onChange","jest","fn","beforeEach","mockClear","it","_render","render","createElement","classes","container","expect","firstChild","toBeInTheDocument","value","type","screen","getByRole","button","_asyncToGenerator2","_regenerator","mark","_callee","user","wrap","_context","prev","next","userEvent","setup","click","getByText","stop","_callee2","noFeedbackOption","_context2","toHaveBeenCalledWith","_callee3","defaultOption","_context3","_callee4","customOption","_context4","_callee5","_context5","_render2","querySelector","_render3","_render4","name"],"sources":["../../../src/choice-configuration/__tests__/feedback-menu.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport FeedbackMenu from '../feedback-menu';\n\ndescribe('feedback-menu', () => {\n const onChange = jest.fn();\n\n beforeEach(() => {\n onChange.mockClear();\n });\n\n describe('rendering', () => {\n it('renders feedback menu with default options', () => {\n const { container } = render(<FeedbackMenu onChange={onChange} classes={{}} />);\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders menu with feedback type selector', () => {\n render(<FeedbackMenu onChange={onChange} value={{ type: 'default' }} classes={{}} />);\n // Menu button should be in the document\n expect(screen.getByRole('button')).toBeInTheDocument();\n });\n\n it('renders with no feedback type', () => {\n render(<FeedbackMenu onChange={onChange} value={{ type: 'none' }} classes={{}} />);\n expect(screen.getByRole('button')).toBeInTheDocument();\n });\n\n it('renders with custom feedback type', () => {\n render(<FeedbackMenu onChange={onChange} value={{ type: 'custom' }} classes={{}} />);\n expect(screen.getByRole('button')).toBeInTheDocument();\n });\n\n it('renders feedback icon button', () => {\n render(<FeedbackMenu onChange={onChange} classes={{}} />);\n const button = screen.getByRole('button');\n expect(button).toBeInTheDocument();\n });\n });\n\n describe('user interactions', () => {\n it('opens menu when button is clicked', async () => {\n const user = userEvent.setup();\n render(<FeedbackMenu onChange={onChange} value={{ type: 'default' }} classes={{}} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n // Menu items should appear\n expect(screen.getByText('No Feedback')).toBeInTheDocument();\n expect(screen.getByText('Default')).toBeInTheDocument();\n expect(screen.getByText('Custom')).toBeInTheDocument();\n });\n\n it('calls onChange with \"none\" when No Feedback is selected', async () => {\n const user = userEvent.setup();\n render(<FeedbackMenu onChange={onChange} value={{ type: 'default' }} classes={{}} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n const noFeedbackOption = screen.getByText('No Feedback');\n await user.click(noFeedbackOption);\n\n expect(onChange).toHaveBeenCalledWith('none');\n });\n\n it('calls onChange with \"default\" when Default is selected', async () => {\n const user = userEvent.setup();\n render(<FeedbackMenu onChange={onChange} value={{ type: 'none' }} classes={{}} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n const defaultOption = screen.getByText('Default');\n await user.click(defaultOption);\n\n expect(onChange).toHaveBeenCalledWith('default');\n });\n\n it('calls onChange with \"custom\" when Custom is selected', async () => {\n const user = userEvent.setup();\n render(<FeedbackMenu onChange={onChange} value={{ type: 'none' }} classes={{}} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n const customOption = screen.getByText('Custom');\n await user.click(customOption);\n\n expect(onChange).toHaveBeenCalledWith('custom');\n });\n\n it('closes menu after selection', async () => {\n const user = userEvent.setup();\n render(<FeedbackMenu onChange={onChange} value={{ type: 'default' }} classes={{}} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n expect(screen.getByText('No Feedback')).toBeInTheDocument();\n\n const noFeedbackOption = screen.getByText('No Feedback');\n await user.click(noFeedbackOption);\n\n // Menu should close after selection\n expect(onChange).toHaveBeenCalledWith('none');\n });\n });\n\n describe('feedback type indicators', () => {\n it('shows correct icon color for default feedback', () => {\n const { container } = render(<FeedbackMenu onChange={onChange} value={{ type: 'default' }} classes={{}} />);\n // Icon should be present with primary color\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n\n it('shows correct icon color for custom feedback', () => {\n const { container } = render(<FeedbackMenu onChange={onChange} value={{ type: 'custom' }} classes={{}} />);\n // Icon should be present with primary color\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n\n it('shows correct icon color for disabled feedback', () => {\n const { container } = render(<FeedbackMenu onChange={onChange} value={{ type: 'none' }} classes={{}} />);\n // Icon should be present with disabled color\n expect(container.querySelector('svg')).toBeInTheDocument();\n });\n });\n\n describe('aria labels', () => {\n it('has aria-label on button for default feedback', () => {\n render(<FeedbackMenu onChange={onChange} value={{ type: 'default' }} classes={{}} />);\n const button = screen.getByRole('button', { name: /Default Feedback/i });\n expect(button).toBeInTheDocument();\n });\n\n it('has aria-label on button for custom feedback', () => {\n render(<FeedbackMenu onChange={onChange} value={{ type: 'custom' }} classes={{}} />);\n const button = screen.getByRole('button', { name: /Custom Feedback/i });\n expect(button).toBeInTheDocument();\n });\n\n it('has aria-label on button for disabled feedback', () => {\n render(<FeedbackMenu onChange={onChange} value={{ type: 'none' }} classes={{}} />);\n const button = screen.getByRole('button', { name: /Feedback disabled/i });\n expect(button).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,253 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
7
- var _react = _interopRequireDefault(require("react"));
8
- var _react2 = require("@testing-library/react");
9
- var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
- var _index = require("../index");
11
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- jest.mock('@pie-lib/editable-html-tip-tap', function () {
14
- return {
15
- __esModule: true,
16
- "default": function _default(_ref) {
17
- var markup = _ref.markup,
18
- _onChange = _ref.onChange,
19
- disabled = _ref.disabled;
20
- return /*#__PURE__*/_react["default"].createElement("textarea", {
21
- "data-testid": "editable-html",
22
- defaultValue: markup || '',
23
- onChange: function onChange(e) {
24
- return _onChange(e.target.value);
25
- },
26
- disabled: disabled
27
- });
28
- }
29
- };
30
- });
31
- var defaultFeedback = {
32
- correct: 'Correct',
33
- incorrect: 'Incorrect'
34
- };
35
- var data = {
36
- correct: true,
37
- value: 'foo',
38
- label: 'Foo',
39
- feedback: {
40
- type: 'custom'
41
- }
42
- };
43
- var classes = {
44
- choiceConfiguration: 'choiceConfiguration'
45
- };
46
- describe('ChoiceConfiguration', function () {
47
- var onChange = jest.fn();
48
- beforeEach(function () {
49
- onChange.mockClear();
50
- });
51
- describe('rendering', function () {
52
- it('renders correctly with default props', function () {
53
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
54
- classes: classes,
55
- defaultFeedback: defaultFeedback,
56
- data: data,
57
- onChange: onChange
58
- })),
59
- container = _render.container;
60
- expect(container.firstChild).toBeInTheDocument();
61
- });
62
- it('renders with checked state', function () {
63
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
64
- classes: classes,
65
- defaultFeedback: defaultFeedback,
66
- data: data,
67
- onChange: onChange,
68
- mode: "checkbox"
69
- }));
70
- var checkbox = _react2.screen.getByRole('checkbox');
71
- expect(checkbox).toBeChecked();
72
- });
73
- it('renders without feedback when allowFeedBack is false', function () {
74
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
75
- allowFeedBack: false,
76
- classes: classes,
77
- defaultFeedback: defaultFeedback,
78
- data: data,
79
- onChange: onChange
80
- }));
81
- expect(_react2.screen.queryByRole('button', {
82
- name: /feedback/i
83
- })).not.toBeInTheDocument();
84
- });
85
- it('renders without delete button when allowDelete is false', function () {
86
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
87
- allowDelete: false,
88
- classes: classes,
89
- defaultFeedback: defaultFeedback,
90
- data: data,
91
- onChange: onChange
92
- }));
93
- expect(_react2.screen.queryByRole('button', {
94
- name: /delete/i
95
- })).not.toBeInTheDocument();
96
- });
97
- });
98
- describe('user interactions', function () {
99
- it('calls onChange when label is edited', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
100
- var user, editableHtmlElements, editableHtml;
101
- return _regenerator["default"].wrap(function (_context) {
102
- while (1) switch (_context.prev = _context.next) {
103
- case 0:
104
- user = _userEvent["default"].setup();
105
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
106
- classes: classes,
107
- defaultFeedback: defaultFeedback,
108
- data: data,
109
- onChange: onChange
110
- }));
111
- editableHtmlElements = _react2.screen.getAllByTestId('editable-html');
112
- editableHtml = editableHtmlElements[0];
113
- _context.next = 1;
114
- return user.clear(editableHtml);
115
- case 1:
116
- _context.next = 2;
117
- return user.type(editableHtml, 'new label');
118
- case 2:
119
- expect(onChange).toHaveBeenCalled();
120
- expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
121
- label: expect.stringContaining('new label')
122
- }));
123
- case 3:
124
- case "end":
125
- return _context.stop();
126
- }
127
- }, _callee);
128
- })));
129
- it('calls onChange when checkbox is toggled', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
130
- var user, checkbox;
131
- return _regenerator["default"].wrap(function (_context2) {
132
- while (1) switch (_context2.prev = _context2.next) {
133
- case 0:
134
- user = _userEvent["default"].setup();
135
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
136
- classes: classes,
137
- defaultFeedback: defaultFeedback,
138
- data: _objectSpread(_objectSpread({}, data), {}, {
139
- correct: false
140
- }),
141
- onChange: onChange,
142
- mode: "checkbox"
143
- }));
144
- checkbox = _react2.screen.getByRole('checkbox');
145
- _context2.next = 1;
146
- return user.click(checkbox);
147
- case 1:
148
- expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
149
- correct: true
150
- }));
151
- case 2:
152
- case "end":
153
- return _context2.stop();
154
- }
155
- }, _callee2);
156
- })));
157
- });
158
- describe('prop variations', function () {
159
- it('renders with radio mode instead of checkbox', function () {
160
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
161
- classes: classes,
162
- defaultFeedback: defaultFeedback,
163
- data: data,
164
- onChange: onChange,
165
- mode: "radio"
166
- }));
167
- var radio = _react2.screen.getByRole('radio');
168
- expect(radio).toBeInTheDocument();
169
- });
170
- it('renders with disabled state', function () {
171
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
172
- classes: classes,
173
- defaultFeedback: defaultFeedback,
174
- data: data,
175
- onChange: onChange,
176
- disabled: true,
177
- mode: "checkbox"
178
- }));
179
- var checkbox = _react2.screen.getByRole('checkbox');
180
- expect(checkbox).toBeInTheDocument();
181
- });
182
- it('renders with custom feedback type', function () {
183
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
184
- classes: classes,
185
- defaultFeedback: defaultFeedback,
186
- data: _objectSpread(_objectSpread({}, data), {}, {
187
- feedback: {
188
- type: 'custom'
189
- }
190
- }),
191
- onChange: onChange,
192
- mode: "checkbox"
193
- }));
194
- var editableElements = _react2.screen.getAllByTestId('editable-html');
195
- expect(editableElements.length).toBeGreaterThan(0);
196
- });
197
- it('renders with incorrect answer', function () {
198
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
199
- classes: classes,
200
- defaultFeedback: defaultFeedback,
201
- data: _objectSpread(_objectSpread({}, data), {}, {
202
- correct: false
203
- }),
204
- onChange: onChange,
205
- mode: "checkbox"
206
- }));
207
- var checkbox = _react2.screen.getByRole('checkbox');
208
- expect(checkbox).not.toBeChecked();
209
- });
210
- });
211
- describe('edge cases', function () {
212
- it('handles data with empty label', function () {
213
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
214
- classes: classes,
215
- defaultFeedback: defaultFeedback,
216
- data: _objectSpread(_objectSpread({}, data), {}, {
217
- label: ''
218
- }),
219
- onChange: onChange
220
- }));
221
- var editableElements = _react2.screen.getAllByTestId('editable-html');
222
- expect(editableElements.length).toBeGreaterThan(0);
223
- });
224
- it('handles multiple feedback types', function () {
225
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
226
- classes: classes,
227
- defaultFeedback: defaultFeedback,
228
- data: _objectSpread(_objectSpread({}, data), {}, {
229
- feedback: {
230
- type: 'default'
231
- }
232
- }),
233
- onChange: onChange
234
- })),
235
- rerender = _render2.rerender;
236
- var editableElements = _react2.screen.getAllByTestId('editable-html');
237
- expect(editableElements.length).toBeGreaterThan(0);
238
- rerender(/*#__PURE__*/_react["default"].createElement(_index.ChoiceConfiguration, {
239
- classes: classes,
240
- defaultFeedback: defaultFeedback,
241
- data: _objectSpread(_objectSpread({}, data), {}, {
242
- feedback: {
243
- type: 'custom'
244
- }
245
- }),
246
- onChange: onChange
247
- }));
248
- editableElements = _react2.screen.getAllByTestId('editable-html');
249
- expect(editableElements.length).toBeGreaterThan(0);
250
- });
251
- });
252
- });
253
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","names":["_react","_interopRequireDefault","require","_react2","_userEvent","_index","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","__esModule","default","_ref","markup","onChange","disabled","createElement","defaultValue","target","value","defaultFeedback","correct","incorrect","data","label","feedback","type","classes","choiceConfiguration","describe","fn","beforeEach","mockClear","it","_render","render","ChoiceConfiguration","container","expect","firstChild","toBeInTheDocument","mode","checkbox","screen","getByRole","toBeChecked","allowFeedBack","queryByRole","name","not","allowDelete","_asyncToGenerator2","_regenerator","mark","_callee","user","editableHtmlElements","editableHtml","wrap","_context","prev","next","userEvent","setup","getAllByTestId","clear","toHaveBeenCalled","toHaveBeenCalledWith","objectContaining","stringContaining","stop","_callee2","_context2","click","radio","editableElements","toBeGreaterThan","_render2","rerender"],"sources":["../../../src/choice-configuration/__tests__/index.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport { ChoiceConfiguration } from '../index';\n\njest.mock('@pie-lib/editable-html-tip-tap', () => ({\n __esModule: true,\n default: ({ markup, onChange, disabled }) => (\n <textarea\n data-testid=\"editable-html\"\n defaultValue={markup || ''}\n onChange={(e) => onChange(e.target.value)}\n disabled={disabled}\n />\n ),\n}));\n\nconst defaultFeedback = {\n correct: 'Correct',\n incorrect: 'Incorrect',\n};\n\nconst data = {\n correct: true,\n value: 'foo',\n label: 'Foo',\n feedback: {\n type: 'custom',\n },\n};\n\nconst classes = {\n choiceConfiguration: 'choiceConfiguration',\n};\n\ndescribe('ChoiceConfiguration', () => {\n const onChange = jest.fn();\n\n beforeEach(() => {\n onChange.mockClear();\n });\n\n describe('rendering', () => {\n it('renders correctly with default props', () => {\n const { container } = render(\n <ChoiceConfiguration classes={classes} defaultFeedback={defaultFeedback} data={data} onChange={onChange} />,\n );\n expect(container.firstChild).toBeInTheDocument();\n });\n\n it('renders with checked state', () => {\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={data}\n onChange={onChange}\n mode=\"checkbox\"\n />,\n );\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeChecked();\n });\n\n it('renders without feedback when allowFeedBack is false', () => {\n render(\n <ChoiceConfiguration\n allowFeedBack={false}\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={data}\n onChange={onChange}\n />,\n );\n expect(screen.queryByRole('button', { name: /feedback/i })).not.toBeInTheDocument();\n });\n\n it('renders without delete button when allowDelete is false', () => {\n render(\n <ChoiceConfiguration\n allowDelete={false}\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={data}\n onChange={onChange}\n />,\n );\n expect(screen.queryByRole('button', { name: /delete/i })).not.toBeInTheDocument();\n });\n });\n\n describe('user interactions', () => {\n it('calls onChange when label is edited', async () => {\n const user = userEvent.setup();\n render(\n <ChoiceConfiguration classes={classes} defaultFeedback={defaultFeedback} data={data} onChange={onChange} />,\n );\n\n const editableHtmlElements = screen.getAllByTestId('editable-html');\n const editableHtml = editableHtmlElements[0];\n await user.clear(editableHtml);\n await user.type(editableHtml, 'new label');\n\n expect(onChange).toHaveBeenCalled();\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n label: expect.stringContaining('new label'),\n }),\n );\n });\n\n it('calls onChange when checkbox is toggled', async () => {\n const user = userEvent.setup();\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={{ ...data, correct: false }}\n onChange={onChange}\n mode=\"checkbox\"\n />,\n );\n\n const checkbox = screen.getByRole('checkbox');\n await user.click(checkbox);\n\n expect(onChange).toHaveBeenCalledWith(\n expect.objectContaining({\n correct: true,\n }),\n );\n });\n });\n\n describe('prop variations', () => {\n it('renders with radio mode instead of checkbox', () => {\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={data}\n onChange={onChange}\n mode=\"radio\"\n />,\n );\n const radio = screen.getByRole('radio');\n expect(radio).toBeInTheDocument();\n });\n\n it('renders with disabled state', () => {\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={data}\n onChange={onChange}\n disabled={true}\n mode=\"checkbox\"\n />,\n );\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).toBeInTheDocument();\n });\n\n it('renders with custom feedback type', () => {\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={{ ...data, feedback: { type: 'custom' } }}\n onChange={onChange}\n mode=\"checkbox\"\n />,\n );\n const editableElements = screen.getAllByTestId('editable-html');\n expect(editableElements.length).toBeGreaterThan(0);\n });\n\n it('renders with incorrect answer', () => {\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={{ ...data, correct: false }}\n onChange={onChange}\n mode=\"checkbox\"\n />,\n );\n const checkbox = screen.getByRole('checkbox');\n expect(checkbox).not.toBeChecked();\n });\n });\n\n describe('edge cases', () => {\n it('handles data with empty label', () => {\n render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={{ ...data, label: '' }}\n onChange={onChange}\n />,\n );\n const editableElements = screen.getAllByTestId('editable-html');\n expect(editableElements.length).toBeGreaterThan(0);\n });\n\n it('handles multiple feedback types', () => {\n const { rerender } = render(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={{ ...data, feedback: { type: 'default' } }}\n onChange={onChange}\n />,\n );\n\n let editableElements = screen.getAllByTestId('editable-html');\n expect(editableElements.length).toBeGreaterThan(0);\n\n rerender(\n <ChoiceConfiguration\n classes={classes}\n defaultFeedback={defaultFeedback}\n data={{ ...data, feedback: { type: 'custom' } }}\n onChange={onChange}\n />,\n );\n\n editableElements = screen.getAllByTestId('editable-html');\n expect(editableElements.length).toBeGreaterThan(0);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}