@pie-lib/config-ui 13.0.13 → 13.1.0-beta

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 (47) hide show
  1. package/CHANGELOG.md +0 -42
  2. package/lib/__tests__/alert-dialog.test.js +262 -0
  3. package/lib/__tests__/alert-dialog.test.js.map +1 -0
  4. package/lib/__tests__/checkbox.test.js +227 -0
  5. package/lib/__tests__/checkbox.test.js.map +1 -0
  6. package/lib/__tests__/choice-utils.test.js +14 -0
  7. package/lib/__tests__/choice-utils.test.js.map +1 -0
  8. package/lib/__tests__/form-section.test.js +252 -0
  9. package/lib/__tests__/form-section.test.js.map +1 -0
  10. package/lib/__tests__/help.test.js +270 -0
  11. package/lib/__tests__/help.test.js.map +1 -0
  12. package/lib/__tests__/input.test.js +268 -0
  13. package/lib/__tests__/input.test.js.map +1 -0
  14. package/lib/__tests__/langs.test.js +541 -0
  15. package/lib/__tests__/langs.test.js.map +1 -0
  16. package/lib/__tests__/number-text-field-custom.test.js +362 -0
  17. package/lib/__tests__/number-text-field-custom.test.js.map +1 -0
  18. package/lib/__tests__/number-text-field.test.js +421 -0
  19. package/lib/__tests__/number-text-field.test.js.map +1 -0
  20. package/lib/__tests__/radio-with-label.test.js +233 -0
  21. package/lib/__tests__/radio-with-label.test.js.map +1 -0
  22. package/lib/__tests__/settings-panel.test.js +184 -0
  23. package/lib/__tests__/settings-panel.test.js.map +1 -0
  24. package/lib/__tests__/settings.test.js +653 -0
  25. package/lib/__tests__/settings.test.js.map +1 -0
  26. package/lib/__tests__/tabs.test.js +211 -0
  27. package/lib/__tests__/tabs.test.js.map +1 -0
  28. package/lib/__tests__/two-choice.test.js +124 -0
  29. package/lib/__tests__/two-choice.test.js.map +1 -0
  30. package/lib/__tests__/with-stateful-model.test.js +221 -0
  31. package/lib/__tests__/with-stateful-model.test.js.map +1 -0
  32. package/lib/choice-configuration/__tests__/feedback-menu.test.js +287 -0
  33. package/lib/choice-configuration/__tests__/feedback-menu.test.js.map +1 -0
  34. package/lib/choice-configuration/__tests__/index.test.js +253 -0
  35. package/lib/choice-configuration/__tests__/index.test.js.map +1 -0
  36. package/lib/feedback-config/__tests__/feedback-config.test.js +201 -0
  37. package/lib/feedback-config/__tests__/feedback-config.test.js.map +1 -0
  38. package/lib/feedback-config/__tests__/feedback-selector.test.js +177 -0
  39. package/lib/feedback-config/__tests__/feedback-selector.test.js.map +1 -0
  40. package/lib/layout/__tests__/config.layout.test.js +70 -0
  41. package/lib/layout/__tests__/config.layout.test.js.map +1 -0
  42. package/lib/layout/__tests__/layout-content.test.js +6 -0
  43. package/lib/layout/__tests__/layout-content.test.js.map +1 -0
  44. package/lib/tags-input/__tests__/index.test.js +183 -0
  45. package/lib/tags-input/__tests__/index.test.js.map +1 -0
  46. package/package.json +5 -5
  47. package/LICENSE.md +0 -5
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _formSection = _interopRequireDefault(require("../form-section"));
7
+ describe('FormSection Component', function () {
8
+ describe('Rendering', function () {
9
+ it('should render with label and children', function () {
10
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
11
+ label: "Settings"
12
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Child content")));
13
+ expect(_react2.screen.getByText('Settings')).toBeInTheDocument();
14
+ expect(_react2.screen.getByText('Child content')).toBeInTheDocument();
15
+ });
16
+ it('should render label as subtitle1 typography', function () {
17
+ var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
18
+ label: "Configuration"
19
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
20
+ container = _render.container;
21
+ var typography = container.querySelector('[class*="MuiTypography"]');
22
+ expect(typography).toBeInTheDocument();
23
+ });
24
+ it('should render with custom className', function () {
25
+ var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
26
+ label: "Custom",
27
+ className: "custom-class"
28
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
29
+ container = _render2.container;
30
+ expect(container.querySelector('.custom-class')).toBeInTheDocument();
31
+ });
32
+ it('should render multiple children', function () {
33
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
34
+ label: "Multiple Children"
35
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "First child"), /*#__PURE__*/_react["default"].createElement("div", null, "Second child"), /*#__PURE__*/_react["default"].createElement("div", null, "Third child")));
36
+ expect(_react2.screen.getByText('First child')).toBeInTheDocument();
37
+ expect(_react2.screen.getByText('Second child')).toBeInTheDocument();
38
+ expect(_react2.screen.getByText('Third child')).toBeInTheDocument();
39
+ });
40
+ it('should render with single child', function () {
41
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
42
+ label: "Single Child"
43
+ }, /*#__PURE__*/_react["default"].createElement("input", {
44
+ type: "text",
45
+ placeholder: "Input"
46
+ })));
47
+ expect(_react2.screen.getByPlaceholderText('Input')).toBeInTheDocument();
48
+ });
49
+ it('should render with complex child components', function () {
50
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
51
+ label: "Complex"
52
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", null, "Name:"), /*#__PURE__*/_react["default"].createElement("input", {
53
+ type: "text",
54
+ placeholder: "Enter name"
55
+ })), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", null, "Email:"), /*#__PURE__*/_react["default"].createElement("input", {
56
+ type: "email",
57
+ placeholder: "Enter email"
58
+ }))));
59
+ expect(_react2.screen.getByPlaceholderText('Enter name')).toBeInTheDocument();
60
+ expect(_react2.screen.getByPlaceholderText('Enter email')).toBeInTheDocument();
61
+ });
62
+ });
63
+ describe('Labels', function () {
64
+ it('should display different labels', function () {
65
+ var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
66
+ label: "First Label"
67
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
68
+ rerender = _render3.rerender;
69
+ expect(_react2.screen.getByText('First Label')).toBeInTheDocument();
70
+ rerender(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
71
+ label: "Second Label"
72
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content")));
73
+ expect(_react2.screen.getByText('Second Label')).toBeInTheDocument();
74
+ expect(_react2.screen.queryByText('First Label')).not.toBeInTheDocument();
75
+ });
76
+ it('should handle empty label', function () {
77
+ var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
78
+ label: ""
79
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
80
+ container = _render4.container;
81
+ expect(container.querySelector('[class*="MuiTypography"]')).toBeInTheDocument();
82
+ expect(_react2.screen.getByText('Content')).toBeInTheDocument();
83
+ });
84
+ it('should handle long labels', function () {
85
+ var longLabel = 'This is a very long label that should wrap properly within the form section';
86
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
87
+ label: longLabel
88
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content")));
89
+ expect(_react2.screen.getByText(longLabel)).toBeInTheDocument();
90
+ });
91
+ it('should handle special characters in labels', function () {
92
+ var specialLabel = 'Settings & Configuration < Advanced > Test @ #1';
93
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
94
+ label: specialLabel
95
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content")));
96
+ expect(_react2.screen.getByText(specialLabel)).toBeInTheDocument();
97
+ });
98
+ });
99
+ describe('Styling and Layout', function () {
100
+ it('should apply default spacing', function () {
101
+ var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
102
+ label: "Spaced"
103
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
104
+ container = _render5.container;
105
+ var formSection = container.querySelector('[class*="MuiBox"], div');
106
+ expect(formSection).toBeInTheDocument();
107
+ });
108
+ it('should apply labelExtraStyle to the label', function () {
109
+ var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
110
+ label: "Styled Label",
111
+ labelExtraStyle: {
112
+ color: 'red',
113
+ fontWeight: 'bold'
114
+ }
115
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
116
+ container = _render6.container;
117
+ var typography = container.querySelector('[class*="MuiTypography"]');
118
+ expect(typography).toHaveStyle('color: red');
119
+ expect(typography).toHaveStyle('fontWeight: bold');
120
+ });
121
+ it('should apply multiple labelExtraStyle properties', function () {
122
+ var extraStyle = {
123
+ fontSize: '18px',
124
+ margin: '10px',
125
+ padding: '5px'
126
+ };
127
+ var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
128
+ label: "Multi-styled",
129
+ labelExtraStyle: extraStyle
130
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
131
+ container = _render7.container;
132
+ var typography = container.querySelector('[class*="MuiTypography"]');
133
+ expect(typography).toHaveStyle('fontSize: 18px');
134
+ expect(typography).toHaveStyle('margin: 10px');
135
+ expect(typography).toHaveStyle('padding: 5px');
136
+ });
137
+ it('should handle no labelExtraStyle', function () {
138
+ var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
139
+ label: "No Extra Style"
140
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
141
+ container = _render8.container;
142
+ expect(container.querySelector('[class*="MuiTypography"]')).toBeInTheDocument();
143
+ });
144
+ });
145
+ describe('CSS classes', function () {
146
+ it('should support multiple custom classes', function () {
147
+ var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
148
+ label: "Test",
149
+ className: "class1 class2 class3"
150
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
151
+ container = _render9.container;
152
+ var element = container.querySelector('.class1.class2.class3');
153
+ expect(element).toBeInTheDocument();
154
+ });
155
+ it('should work without custom className', function () {
156
+ var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
157
+ label: "Test"
158
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
159
+ container = _render0.container;
160
+ expect(container.firstChild).toBeInTheDocument();
161
+ });
162
+ });
163
+ describe('Content variations', function () {
164
+ it('should render form inputs as children', function () {
165
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
166
+ label: "Form Inputs"
167
+ }, /*#__PURE__*/_react["default"].createElement("input", {
168
+ type: "text",
169
+ placeholder: "Text input"
170
+ }), /*#__PURE__*/_react["default"].createElement("input", {
171
+ type: "number",
172
+ placeholder: "Number input"
173
+ }), /*#__PURE__*/_react["default"].createElement("textarea", {
174
+ placeholder: "Text area"
175
+ })));
176
+ expect(_react2.screen.getByPlaceholderText('Text input')).toBeInTheDocument();
177
+ expect(_react2.screen.getByPlaceholderText('Number input')).toBeInTheDocument();
178
+ expect(_react2.screen.getByPlaceholderText('Text area')).toBeInTheDocument();
179
+ });
180
+ it('should render lists as children', function () {
181
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
182
+ label: "Options"
183
+ }, /*#__PURE__*/_react["default"].createElement("ul", null, /*#__PURE__*/_react["default"].createElement("li", null, "Option 1"), /*#__PURE__*/_react["default"].createElement("li", null, "Option 2"), /*#__PURE__*/_react["default"].createElement("li", null, "Option 3"))));
184
+ expect(_react2.screen.getByText('Option 1')).toBeInTheDocument();
185
+ expect(_react2.screen.getByText('Option 2')).toBeInTheDocument();
186
+ expect(_react2.screen.getByText('Option 3')).toBeInTheDocument();
187
+ });
188
+ it('should render buttons as children', function () {
189
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
190
+ label: "Actions"
191
+ }, /*#__PURE__*/_react["default"].createElement("button", null, "Save"), /*#__PURE__*/_react["default"].createElement("button", null, "Cancel")));
192
+ expect(_react2.screen.getByRole('button', {
193
+ name: 'Save'
194
+ })).toBeInTheDocument();
195
+ expect(_react2.screen.getByRole('button', {
196
+ name: 'Cancel'
197
+ })).toBeInTheDocument();
198
+ });
199
+ it('should render nested form sections', function () {
200
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
201
+ label: "Outer"
202
+ }, /*#__PURE__*/_react["default"].createElement(_formSection["default"], {
203
+ label: "Inner"
204
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Nested content"))));
205
+ expect(_react2.screen.getByText('Outer')).toBeInTheDocument();
206
+ expect(_react2.screen.getByText('Inner')).toBeInTheDocument();
207
+ expect(_react2.screen.getByText('Nested content')).toBeInTheDocument();
208
+ });
209
+ });
210
+ describe('Edge cases', function () {
211
+ it('should render with conditional children', function () {
212
+ var showContent = true;
213
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
214
+ label: "Conditional"
215
+ }, showContent && /*#__PURE__*/_react["default"].createElement("div", null, "Visible"), !showContent && /*#__PURE__*/_react["default"].createElement("div", null, "Hidden")));
216
+ expect(_react2.screen.getByText('Visible')).toBeInTheDocument();
217
+ expect(_react2.screen.queryByText('Hidden')).not.toBeInTheDocument();
218
+ });
219
+ it('should update when children change', function () {
220
+ var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
221
+ label: "Dynamic"
222
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Initial content"))),
223
+ rerender = _render1.rerender;
224
+ expect(_react2.screen.getByText('Initial content')).toBeInTheDocument();
225
+ rerender(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
226
+ label: "Dynamic"
227
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Updated content")));
228
+ expect(_react2.screen.queryByText('Initial content')).not.toBeInTheDocument();
229
+ expect(_react2.screen.getByText('Updated content')).toBeInTheDocument();
230
+ });
231
+ });
232
+ describe('Accessibility', function () {
233
+ it('should have proper heading hierarchy', function () {
234
+ var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
235
+ label: "Accessible Section"
236
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Content"))),
237
+ container = _render10.container;
238
+ var typography = container.querySelector('[class*="MuiTypography"]');
239
+ expect(typography).toBeInTheDocument();
240
+ });
241
+ it('should be properly semantically structured', function () {
242
+ var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_formSection["default"], {
243
+ label: "Semantic"
244
+ }, /*#__PURE__*/_react["default"].createElement("input", {
245
+ type: "text"
246
+ }))),
247
+ container = _render11.container;
248
+ expect(container.querySelector('div')).toBeInTheDocument();
249
+ });
250
+ });
251
+ });
252
+ //# sourceMappingURL=form-section.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-section.test.js","names":["_react","_interopRequireDefault","require","_react2","_formSection","describe","it","render","createElement","label","expect","screen","getByText","toBeInTheDocument","_render","container","typography","querySelector","_render2","className","type","placeholder","getByPlaceholderText","_render3","rerender","queryByText","not","_render4","longLabel","specialLabel","_render5","formSection","_render6","labelExtraStyle","color","fontWeight","toHaveStyle","extraStyle","fontSize","margin","padding","_render7","_render8","_render9","element","_render0","firstChild","getByRole","name","showContent","_render1","_render10","_render11"],"sources":["../../src/__tests__/form-section.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport FormSection from '../form-section';\n\ndescribe('FormSection Component', () => {\n describe('Rendering', () => {\n it('should render with label and children', () => {\n render(\n <FormSection label=\"Settings\">\n <div>Child content</div>\n </FormSection>,\n );\n\n expect(screen.getByText('Settings')).toBeInTheDocument();\n expect(screen.getByText('Child content')).toBeInTheDocument();\n });\n\n it('should render label as subtitle1 typography', () => {\n const { container } = render(\n <FormSection label=\"Configuration\">\n <div>Content</div>\n </FormSection>,\n );\n\n const typography = container.querySelector('[class*=\"MuiTypography\"]');\n expect(typography).toBeInTheDocument();\n });\n\n it('should render with custom className', () => {\n const { container } = render(\n <FormSection label=\"Custom\" className=\"custom-class\">\n <div>Content</div>\n </FormSection>,\n );\n\n expect(container.querySelector('.custom-class')).toBeInTheDocument();\n });\n\n it('should render multiple children', () => {\n render(\n <FormSection label=\"Multiple Children\">\n <div>First child</div>\n <div>Second child</div>\n <div>Third child</div>\n </FormSection>,\n );\n\n expect(screen.getByText('First child')).toBeInTheDocument();\n expect(screen.getByText('Second child')).toBeInTheDocument();\n expect(screen.getByText('Third child')).toBeInTheDocument();\n });\n\n it('should render with single child', () => {\n render(\n <FormSection label=\"Single Child\">\n <input type=\"text\" placeholder=\"Input\" />\n </FormSection>,\n );\n\n expect(screen.getByPlaceholderText('Input')).toBeInTheDocument();\n });\n\n it('should render with complex child components', () => {\n render(\n <FormSection label=\"Complex\">\n <div>\n <label>Name:</label>\n <input type=\"text\" placeholder=\"Enter name\" />\n </div>\n <div>\n <label>Email:</label>\n <input type=\"email\" placeholder=\"Enter email\" />\n </div>\n </FormSection>,\n );\n\n expect(screen.getByPlaceholderText('Enter name')).toBeInTheDocument();\n expect(screen.getByPlaceholderText('Enter email')).toBeInTheDocument();\n });\n });\n\n describe('Labels', () => {\n it('should display different labels', () => {\n const { rerender } = render(\n <FormSection label=\"First Label\">\n <div>Content</div>\n </FormSection>,\n );\n\n expect(screen.getByText('First Label')).toBeInTheDocument();\n\n rerender(\n <FormSection label=\"Second Label\">\n <div>Content</div>\n </FormSection>,\n );\n\n expect(screen.getByText('Second Label')).toBeInTheDocument();\n expect(screen.queryByText('First Label')).not.toBeInTheDocument();\n });\n\n it('should handle empty label', () => {\n const { container } = render(\n <FormSection label=\"\">\n <div>Content</div>\n </FormSection>,\n );\n\n expect(container.querySelector('[class*=\"MuiTypography\"]')).toBeInTheDocument();\n expect(screen.getByText('Content')).toBeInTheDocument();\n });\n\n it('should handle long labels', () => {\n const longLabel = 'This is a very long label that should wrap properly within the form section';\n render(\n <FormSection label={longLabel}>\n <div>Content</div>\n </FormSection>,\n );\n\n expect(screen.getByText(longLabel)).toBeInTheDocument();\n });\n\n it('should handle special characters in labels', () => {\n const specialLabel = 'Settings & Configuration < Advanced > Test @ #1';\n render(\n <FormSection label={specialLabel}>\n <div>Content</div>\n </FormSection>,\n );\n\n expect(screen.getByText(specialLabel)).toBeInTheDocument();\n });\n });\n\n describe('Styling and Layout', () => {\n it('should apply default spacing', () => {\n const { container } = render(\n <FormSection label=\"Spaced\">\n <div>Content</div>\n </FormSection>,\n );\n\n const formSection = container.querySelector('[class*=\"MuiBox\"], div');\n expect(formSection).toBeInTheDocument();\n });\n\n it('should apply labelExtraStyle to the label', () => {\n const { container } = render(\n <FormSection label=\"Styled Label\" labelExtraStyle={{ color: 'red', fontWeight: 'bold' }}>\n <div>Content</div>\n </FormSection>,\n );\n\n const typography = container.querySelector('[class*=\"MuiTypography\"]');\n expect(typography).toHaveStyle('color: red');\n expect(typography).toHaveStyle('fontWeight: bold');\n });\n\n it('should apply multiple labelExtraStyle properties', () => {\n const extraStyle = {\n fontSize: '18px',\n margin: '10px',\n padding: '5px',\n };\n\n const { container } = render(\n <FormSection label=\"Multi-styled\" labelExtraStyle={extraStyle}>\n <div>Content</div>\n </FormSection>,\n );\n\n const typography = container.querySelector('[class*=\"MuiTypography\"]');\n expect(typography).toHaveStyle('fontSize: 18px');\n expect(typography).toHaveStyle('margin: 10px');\n expect(typography).toHaveStyle('padding: 5px');\n });\n\n it('should handle no labelExtraStyle', () => {\n const { container } = render(\n <FormSection label=\"No Extra Style\">\n <div>Content</div>\n </FormSection>,\n );\n\n expect(container.querySelector('[class*=\"MuiTypography\"]')).toBeInTheDocument();\n });\n });\n\n describe('CSS classes', () => {\n it('should support multiple custom classes', () => {\n const { container } = render(\n <FormSection label=\"Test\" className=\"class1 class2 class3\">\n <div>Content</div>\n </FormSection>,\n );\n\n const element = container.querySelector('.class1.class2.class3');\n expect(element).toBeInTheDocument();\n });\n\n it('should work without custom className', () => {\n const { container } = render(\n <FormSection label=\"Test\">\n <div>Content</div>\n </FormSection>,\n );\n\n expect(container.firstChild).toBeInTheDocument();\n });\n });\n\n describe('Content variations', () => {\n it('should render form inputs as children', () => {\n render(\n <FormSection label=\"Form Inputs\">\n <input type=\"text\" placeholder=\"Text input\" />\n <input type=\"number\" placeholder=\"Number input\" />\n <textarea placeholder=\"Text area\"></textarea>\n </FormSection>,\n );\n\n expect(screen.getByPlaceholderText('Text input')).toBeInTheDocument();\n expect(screen.getByPlaceholderText('Number input')).toBeInTheDocument();\n expect(screen.getByPlaceholderText('Text area')).toBeInTheDocument();\n });\n\n it('should render lists as children', () => {\n render(\n <FormSection label=\"Options\">\n <ul>\n <li>Option 1</li>\n <li>Option 2</li>\n <li>Option 3</li>\n </ul>\n </FormSection>,\n );\n\n expect(screen.getByText('Option 1')).toBeInTheDocument();\n expect(screen.getByText('Option 2')).toBeInTheDocument();\n expect(screen.getByText('Option 3')).toBeInTheDocument();\n });\n\n it('should render buttons as children', () => {\n render(\n <FormSection label=\"Actions\">\n <button>Save</button>\n <button>Cancel</button>\n </FormSection>,\n );\n\n expect(screen.getByRole('button', { name: 'Save' })).toBeInTheDocument();\n expect(screen.getByRole('button', { name: 'Cancel' })).toBeInTheDocument();\n });\n\n it('should render nested form sections', () => {\n render(\n <FormSection label=\"Outer\">\n <FormSection label=\"Inner\">\n <div>Nested content</div>\n </FormSection>\n </FormSection>,\n );\n\n expect(screen.getByText('Outer')).toBeInTheDocument();\n expect(screen.getByText('Inner')).toBeInTheDocument();\n expect(screen.getByText('Nested content')).toBeInTheDocument();\n });\n });\n\n describe('Edge cases', () => {\n it('should render with conditional children', () => {\n const showContent = true;\n\n render(\n <FormSection label=\"Conditional\">\n {showContent && <div>Visible</div>}\n {!showContent && <div>Hidden</div>}\n </FormSection>,\n );\n\n expect(screen.getByText('Visible')).toBeInTheDocument();\n expect(screen.queryByText('Hidden')).not.toBeInTheDocument();\n });\n\n it('should update when children change', () => {\n const { rerender } = render(\n <FormSection label=\"Dynamic\">\n <div>Initial content</div>\n </FormSection>,\n );\n\n expect(screen.getByText('Initial content')).toBeInTheDocument();\n\n rerender(\n <FormSection label=\"Dynamic\">\n <div>Updated content</div>\n </FormSection>,\n );\n\n expect(screen.queryByText('Initial content')).not.toBeInTheDocument();\n expect(screen.getByText('Updated content')).toBeInTheDocument();\n });\n });\n\n describe('Accessibility', () => {\n it('should have proper heading hierarchy', () => {\n const { container } = render(\n <FormSection label=\"Accessible Section\">\n <div>Content</div>\n </FormSection>,\n );\n\n const typography = container.querySelector('[class*=\"MuiTypography\"]');\n expect(typography).toBeInTheDocument();\n });\n\n it('should be properly semantically structured', () => {\n const { container } = render(\n <FormSection label=\"Semantic\">\n <input type=\"text\" />\n </FormSection>,\n );\n\n expect(container.querySelector('div')).toBeInTheDocument();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
11
+ var _help = _interopRequireWildcard(require("../help"));
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
+ describe('HelpButton', function () {
14
+ it('renders help icon button', function () {
15
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpButton, null));
16
+ var button = _react2.screen.getByRole('button');
17
+ expect(button).toBeInTheDocument();
18
+ });
19
+ it('calls onClick when clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
20
+ var user, onClick, button;
21
+ return _regenerator["default"].wrap(function (_context) {
22
+ while (1) switch (_context.prev = _context.next) {
23
+ case 0:
24
+ user = _userEvent["default"].setup();
25
+ onClick = jest.fn();
26
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpButton, {
27
+ onClick: onClick
28
+ }));
29
+ button = _react2.screen.getByRole('button');
30
+ _context.next = 1;
31
+ return user.click(button);
32
+ case 1:
33
+ expect(onClick).toHaveBeenCalledTimes(1);
34
+ case 2:
35
+ case "end":
36
+ return _context.stop();
37
+ }
38
+ }, _callee);
39
+ })));
40
+ it('renders with large size', function () {
41
+ var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpButton, null)),
42
+ container = _render.container;
43
+ var button = container.querySelector('button[class*="sizeLarge"]');
44
+ expect(button || _react2.screen.getByRole('button')).toBeInTheDocument();
45
+ });
46
+ });
47
+ describe('HelpDialog', function () {
48
+ var defaultProps = {
49
+ open: true,
50
+ onClose: jest.fn(),
51
+ title: 'Help Title',
52
+ children: 'Help content here'
53
+ };
54
+ beforeEach(function () {
55
+ jest.clearAllMocks();
56
+ });
57
+ it('renders when open is true', function () {
58
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, defaultProps));
59
+ expect(_react2.screen.getByText('Help Title')).toBeInTheDocument();
60
+ expect(_react2.screen.getByText('Help content here')).toBeInTheDocument();
61
+ });
62
+ it('does not render when open is false', function () {
63
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, (0, _extends2["default"])({}, defaultProps, {
64
+ open: false
65
+ })));
66
+ expect(_react2.screen.queryByText('Help Title')).not.toBeInTheDocument();
67
+ });
68
+ it('displays title correctly', function () {
69
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, (0, _extends2["default"])({}, defaultProps, {
70
+ title: "Custom Help"
71
+ })));
72
+ expect(_react2.screen.getByText('Custom Help')).toBeInTheDocument();
73
+ });
74
+ it('displays children content', function () {
75
+ var content = 'This is helpful information';
76
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, (0, _extends2["default"])({}, defaultProps, {
77
+ children: content
78
+ })));
79
+ expect(_react2.screen.getByText(content)).toBeInTheDocument();
80
+ });
81
+ it('calls onClose when OK button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
82
+ var user, onClose, okButton;
83
+ return _regenerator["default"].wrap(function (_context2) {
84
+ while (1) switch (_context2.prev = _context2.next) {
85
+ case 0:
86
+ user = _userEvent["default"].setup();
87
+ onClose = jest.fn();
88
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, (0, _extends2["default"])({}, defaultProps, {
89
+ onClose: onClose
90
+ })));
91
+ okButton = _react2.screen.getByRole('button', {
92
+ name: /OK/i
93
+ });
94
+ _context2.next = 1;
95
+ return user.click(okButton);
96
+ case 1:
97
+ expect(onClose).toHaveBeenCalledTimes(1);
98
+ case 2:
99
+ case "end":
100
+ return _context2.stop();
101
+ }
102
+ }, _callee2);
103
+ })));
104
+ it('calls onClose when dialog is closed via backdrop', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
105
+ var user, onClose, dialog;
106
+ return _regenerator["default"].wrap(function (_context3) {
107
+ while (1) switch (_context3.prev = _context3.next) {
108
+ case 0:
109
+ user = _userEvent["default"].setup();
110
+ onClose = jest.fn();
111
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, (0, _extends2["default"])({}, defaultProps, {
112
+ onClose: onClose
113
+ })));
114
+
115
+ // Simulate backdrop click by calling onClose (MUI Dialog prop)
116
+ dialog = _react2.screen.getByRole('dialog', {
117
+ hidden: true
118
+ });
119
+ expect(dialog).toBeInTheDocument();
120
+ case 1:
121
+ case "end":
122
+ return _context3.stop();
123
+ }
124
+ }, _callee3);
125
+ })));
126
+ it('renders OK button', function () {
127
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, defaultProps));
128
+ var okButton = _react2.screen.getByRole('button', {
129
+ name: /OK/i
130
+ });
131
+ expect(okButton).toBeInTheDocument();
132
+ });
133
+ it('handles multiline children content', function () {
134
+ var content = ['Line 1', 'Line 2', 'Line 3'];
135
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help.HelpDialog, defaultProps, content.map(function (line, i) {
136
+ return /*#__PURE__*/_react["default"].createElement("div", {
137
+ key: i
138
+ }, line);
139
+ })));
140
+ expect(_react2.screen.getByText('Line 1')).toBeInTheDocument();
141
+ expect(_react2.screen.getByText('Line 2')).toBeInTheDocument();
142
+ expect(_react2.screen.getByText('Line 3')).toBeInTheDocument();
143
+ });
144
+ });
145
+ describe('Help Component', function () {
146
+ var defaultProps = {
147
+ title: 'Help Title',
148
+ children: 'Help content'
149
+ };
150
+ beforeEach(function () {
151
+ jest.clearAllMocks();
152
+ });
153
+ it('renders help button initially', function () {
154
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help["default"], defaultProps));
155
+ var button = _react2.screen.getByRole('button');
156
+ expect(button).toBeInTheDocument();
157
+ });
158
+ it('opens dialog when help button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
159
+ var user, button;
160
+ return _regenerator["default"].wrap(function (_context4) {
161
+ while (1) switch (_context4.prev = _context4.next) {
162
+ case 0:
163
+ user = _userEvent["default"].setup();
164
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help["default"], defaultProps));
165
+ button = _react2.screen.getByRole('button');
166
+ _context4.next = 1;
167
+ return user.click(button);
168
+ case 1:
169
+ expect(_react2.screen.getByText('Help Title')).toBeInTheDocument();
170
+ expect(_react2.screen.getByText('Help content')).toBeInTheDocument();
171
+ case 2:
172
+ case "end":
173
+ return _context4.stop();
174
+ }
175
+ }, _callee4);
176
+ })));
177
+ it('closes dialog when OK button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
178
+ var user, helpButton, okButton;
179
+ return _regenerator["default"].wrap(function (_context5) {
180
+ while (1) switch (_context5.prev = _context5.next) {
181
+ case 0:
182
+ user = _userEvent["default"].setup();
183
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help["default"], defaultProps));
184
+ helpButton = _react2.screen.getByRole('button', {
185
+ name: ''
186
+ });
187
+ _context5.next = 1;
188
+ return user.click(helpButton);
189
+ case 1:
190
+ okButton = _react2.screen.getByRole('button', {
191
+ name: /OK/i
192
+ });
193
+ _context5.next = 2;
194
+ return user.click(okButton);
195
+ case 2:
196
+ _context5.next = 3;
197
+ return (0, _react2.waitFor)(function () {
198
+ expect(_react2.screen.queryByText('Help Title')).not.toBeInTheDocument();
199
+ });
200
+ case 3:
201
+ case "end":
202
+ return _context5.stop();
203
+ }
204
+ }, _callee5);
205
+ })));
206
+ it('displays title prop', function () {
207
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help["default"], {
208
+ title: "Custom Title",
209
+ children: "content"
210
+ }));
211
+ var button = _react2.screen.getByRole('button');
212
+ expect(button).toBeInTheDocument();
213
+ });
214
+ it('displays children prop', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
215
+ var user, button;
216
+ return _regenerator["default"].wrap(function (_context6) {
217
+ while (1) switch (_context6.prev = _context6.next) {
218
+ case 0:
219
+ user = _userEvent["default"].setup();
220
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help["default"], (0, _extends2["default"])({}, defaultProps, {
221
+ children: "Custom help content"
222
+ })));
223
+ button = _react2.screen.getByRole('button');
224
+ _context6.next = 1;
225
+ return user.click(button);
226
+ case 1:
227
+ expect(_react2.screen.getByText('Custom help content')).toBeInTheDocument();
228
+ case 2:
229
+ case "end":
230
+ return _context6.stop();
231
+ }
232
+ }, _callee6);
233
+ })));
234
+ it('can open and close dialog multiple times', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
235
+ var user, helpButton, okButton;
236
+ return _regenerator["default"].wrap(function (_context7) {
237
+ while (1) switch (_context7.prev = _context7.next) {
238
+ case 0:
239
+ user = _userEvent["default"].setup();
240
+ (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_help["default"], defaultProps));
241
+ helpButton = _react2.screen.getByRole('button', {
242
+ name: ''
243
+ });
244
+ _context7.next = 1;
245
+ return user.click(helpButton);
246
+ case 1:
247
+ expect(_react2.screen.getByText('Help Title')).toBeInTheDocument();
248
+ okButton = _react2.screen.getByRole('button', {
249
+ name: /OK/i
250
+ });
251
+ _context7.next = 2;
252
+ return user.click(okButton);
253
+ case 2:
254
+ _context7.next = 3;
255
+ return (0, _react2.waitFor)(function () {
256
+ expect(_react2.screen.queryByText('Help Title')).not.toBeInTheDocument();
257
+ });
258
+ case 3:
259
+ _context7.next = 4;
260
+ return user.click(helpButton);
261
+ case 4:
262
+ expect(_react2.screen.getByText('Help Title')).toBeInTheDocument();
263
+ case 5:
264
+ case "end":
265
+ return _context7.stop();
266
+ }
267
+ }, _callee7);
268
+ })));
269
+ });
270
+ //# sourceMappingURL=help.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.test.js","names":["_react","_interopRequireDefault","require","_react2","_userEvent","_help","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","describe","it","render","createElement","HelpButton","button","screen","getByRole","expect","toBeInTheDocument","_asyncToGenerator2","_regenerator","mark","_callee","user","onClick","wrap","_context","prev","next","userEvent","setup","jest","fn","click","toHaveBeenCalledTimes","stop","_render","container","querySelector","defaultProps","open","onClose","title","children","beforeEach","clearAllMocks","HelpDialog","getByText","_extends2","queryByText","not","content","_callee2","okButton","_context2","name","_callee3","dialog","_context3","hidden","map","line","key","_callee4","_context4","_callee5","helpButton","_context5","waitFor","_callee6","_context6","_callee7","_context7"],"sources":["../../src/__tests__/help.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, screen, waitFor } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\nimport Help, { HelpButton, HelpDialog } from '../help';\n\ndescribe('HelpButton', () => {\n it('renders help icon button', () => {\n render(<HelpButton />);\n const button = screen.getByRole('button');\n expect(button).toBeInTheDocument();\n });\n\n it('calls onClick when clicked', async () => {\n const user = userEvent.setup();\n const onClick = jest.fn();\n render(<HelpButton onClick={onClick} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n expect(onClick).toHaveBeenCalledTimes(1);\n });\n\n it('renders with large size', () => {\n const { container } = render(<HelpButton />);\n const button = container.querySelector('button[class*=\"sizeLarge\"]');\n expect(button || screen.getByRole('button')).toBeInTheDocument();\n });\n});\n\ndescribe('HelpDialog', () => {\n const defaultProps = {\n open: true,\n onClose: jest.fn(),\n title: 'Help Title',\n children: 'Help content here',\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it('renders when open is true', () => {\n render(<HelpDialog {...defaultProps} />);\n expect(screen.getByText('Help Title')).toBeInTheDocument();\n expect(screen.getByText('Help content here')).toBeInTheDocument();\n });\n\n it('does not render when open is false', () => {\n render(<HelpDialog {...defaultProps} open={false} />);\n expect(screen.queryByText('Help Title')).not.toBeInTheDocument();\n });\n\n it('displays title correctly', () => {\n render(<HelpDialog {...defaultProps} title=\"Custom Help\" />);\n expect(screen.getByText('Custom Help')).toBeInTheDocument();\n });\n\n it('displays children content', () => {\n const content = 'This is helpful information';\n render(<HelpDialog {...defaultProps} children={content} />);\n expect(screen.getByText(content)).toBeInTheDocument();\n });\n\n it('calls onClose when OK button is clicked', async () => {\n const user = userEvent.setup();\n const onClose = jest.fn();\n render(<HelpDialog {...defaultProps} onClose={onClose} />);\n\n const okButton = screen.getByRole('button', { name: /OK/i });\n await user.click(okButton);\n\n expect(onClose).toHaveBeenCalledTimes(1);\n });\n\n it('calls onClose when dialog is closed via backdrop', async () => {\n const user = userEvent.setup();\n const onClose = jest.fn();\n render(<HelpDialog {...defaultProps} onClose={onClose} />);\n\n // Simulate backdrop click by calling onClose (MUI Dialog prop)\n const dialog = screen.getByRole('dialog', { hidden: true });\n expect(dialog).toBeInTheDocument();\n });\n\n it('renders OK button', () => {\n render(<HelpDialog {...defaultProps} />);\n const okButton = screen.getByRole('button', { name: /OK/i });\n expect(okButton).toBeInTheDocument();\n });\n\n it('handles multiline children content', () => {\n const content = ['Line 1', 'Line 2', 'Line 3'];\n render(\n <HelpDialog {...defaultProps}>\n {content.map((line, i) => (\n <div key={i}>{line}</div>\n ))}\n </HelpDialog>,\n );\n expect(screen.getByText('Line 1')).toBeInTheDocument();\n expect(screen.getByText('Line 2')).toBeInTheDocument();\n expect(screen.getByText('Line 3')).toBeInTheDocument();\n });\n});\n\ndescribe('Help Component', () => {\n const defaultProps = {\n title: 'Help Title',\n children: 'Help content',\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it('renders help button initially', () => {\n render(<Help {...defaultProps} />);\n const button = screen.getByRole('button');\n expect(button).toBeInTheDocument();\n });\n\n it('opens dialog when help button is clicked', async () => {\n const user = userEvent.setup();\n render(<Help {...defaultProps} />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n expect(screen.getByText('Help Title')).toBeInTheDocument();\n expect(screen.getByText('Help content')).toBeInTheDocument();\n });\n\n it('closes dialog when OK button is clicked', async () => {\n const user = userEvent.setup();\n render(<Help {...defaultProps} />);\n\n const helpButton = screen.getByRole('button', { name: '' });\n await user.click(helpButton);\n\n const okButton = screen.getByRole('button', { name: /OK/i });\n await user.click(okButton);\n\n await waitFor(() => {\n expect(screen.queryByText('Help Title')).not.toBeInTheDocument();\n });\n });\n\n it('displays title prop', () => {\n render(<Help title=\"Custom Title\" children=\"content\" />);\n const button = screen.getByRole('button');\n expect(button).toBeInTheDocument();\n });\n\n it('displays children prop', async () => {\n const user = userEvent.setup();\n render(<Help {...defaultProps} children=\"Custom help content\" />);\n\n const button = screen.getByRole('button');\n await user.click(button);\n\n expect(screen.getByText('Custom help content')).toBeInTheDocument();\n });\n\n it('can open and close dialog multiple times', async () => {\n const user = userEvent.setup();\n render(<Help {...defaultProps} />);\n\n const helpButton = screen.getByRole('button', { name: '' });\n\n await user.click(helpButton);\n expect(screen.getByText('Help Title')).toBeInTheDocument();\n\n let okButton = screen.getByRole('button', { name: /OK/i });\n await user.click(okButton);\n\n await waitFor(() => {\n expect(screen.queryByText('Help Title')).not.toBeInTheDocument();\n });\n\n await user.click(helpButton);\n expect(screen.getByText('Help Title')).toBeInTheDocument();\n });\n});\n"],"mappings":"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","ignoreList":[]}