@truedat/df 7.5.9 → 7.5.10

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 (212) hide show
  1. package/package.json +43 -67
  2. package/src/components/DynamicFieldValue.js +0 -1
  3. package/src/components/DynamicForm.js +5 -4
  4. package/src/components/DynamicFormViewer.js +0 -1
  5. package/src/components/DynamicFormWithTranslations.js +3 -3
  6. package/src/components/EditableDynamicFieldValue.js +1 -2
  7. package/src/components/FieldGroupDetail.js +0 -1
  8. package/src/components/FieldGroupSegment.js +17 -29
  9. package/src/components/FieldGroupWithTranslations.js +19 -38
  10. package/src/components/FieldViewerValue.js +4 -7
  11. package/src/components/OriginLabel.js +0 -1
  12. package/src/components/SelectDynamicFormWithTranslations.js +4 -6
  13. package/src/components/SelectableDynamicForm.js +5 -11
  14. package/src/components/__tests__/DynamicFieldValue.spec.js +0 -1
  15. package/src/components/__tests__/DynamicForm.spec.js +25 -23
  16. package/src/components/__tests__/EditableDynamicFieldValue.spec.js +0 -1
  17. package/src/components/__tests__/FieldGroupDetail.spec.js +0 -1
  18. package/src/components/__tests__/FieldViewerValue.spec.js +1 -6
  19. package/src/components/__tests__/SelectableDynamicForm.spec.js +102 -46
  20. package/src/components/__tests__/__snapshots__/DynamicFieldValue.spec.js.snap +2 -2
  21. package/src/components/__tests__/__snapshots__/DynamicForm.spec.js.snap +94 -81
  22. package/src/components/__tests__/__snapshots__/FieldGroupDetail.spec.js.snap +2 -2
  23. package/src/components/__tests__/__snapshots__/FieldViewerValue.spec.js.snap +1 -7
  24. package/src/components/__tests__/__snapshots__/SelectableDynamicForm.spec.js.snap +39 -39
  25. package/src/components/hierarchies/Hierarchies.js +2 -4
  26. package/src/components/hierarchies/HierarchiesView.js +1 -2
  27. package/src/components/hierarchies/HierarchyCrumbs.js +1 -2
  28. package/src/components/hierarchies/HierarchyRoutes.js +44 -39
  29. package/src/components/hierarchies/HierarchyView.js +4 -7
  30. package/src/components/hierarchies/__tests__/Hierarchies.spec.js +2 -3
  31. package/src/components/hierarchies/__tests__/HierarchiesView.spec.js +3 -7
  32. package/src/components/hierarchies/__tests__/HierarchyCrumbs.spec.js +0 -1
  33. package/src/components/hierarchies/__tests__/HierarchyRoutes.spec.js +79 -0
  34. package/src/components/hierarchies/__tests__/HierarchyView.spec.js +2 -10
  35. package/src/components/hierarchies/__tests__/__snapshots__/Hierarchies.spec.js.snap +1 -0
  36. package/src/components/hierarchies/__tests__/__snapshots__/HierarchiesView.spec.js.snap +7 -5
  37. package/src/components/hierarchies/__tests__/__snapshots__/HierarchyCrumbs.spec.js.snap +4 -2
  38. package/src/components/hierarchies/__tests__/__snapshots__/HierarchyRoutes.spec.js.snap +60 -0
  39. package/src/components/hierarchies/__tests__/__snapshots__/HierarchyView.spec.js.snap +8 -6
  40. package/src/components/widgets/CheckboxField.js +0 -1
  41. package/src/components/widgets/ColorPickerField.js +2 -3
  42. package/src/components/widgets/DateField.js +0 -1
  43. package/src/components/widgets/DateTimeField.js +0 -1
  44. package/src/components/widgets/DomainDropdown.js +1 -1
  45. package/src/components/widgets/DomainPreview.js +1 -2
  46. package/src/components/widgets/DropdownDataLoader.js +3 -3
  47. package/src/components/widgets/DropdownField.js +5 -4
  48. package/src/components/widgets/DynamicField.js +0 -5
  49. package/src/components/widgets/EnrichedTextField.js +0 -1
  50. package/src/components/widgets/HierarchyDropdown.js +1 -1
  51. package/src/components/widgets/HierarchyPreview.js +0 -1
  52. package/src/components/widgets/IdentifierField.js +0 -1
  53. package/src/components/widgets/ImageField.js +1 -1
  54. package/src/components/widgets/ImagePreview.js +0 -1
  55. package/src/components/widgets/NumberField.js +6 -7
  56. package/src/components/widgets/PairListField.js +5 -6
  57. package/src/components/widgets/PasswordField.js +1 -2
  58. package/src/components/widgets/RadioField.js +0 -1
  59. package/src/components/widgets/StandardDropdown.js +0 -1
  60. package/src/components/widgets/StringField.js +0 -1
  61. package/src/components/widgets/SystemPreview.js +2 -3
  62. package/src/components/widgets/TableField.js +5 -5
  63. package/src/components/widgets/TextField.js +1 -2
  64. package/src/components/widgets/__tests__/CheckboxField.spec.js +33 -23
  65. package/src/components/widgets/__tests__/ColorPickerField.spec.js +5 -12
  66. package/src/components/widgets/__tests__/DateField.spec.js +5 -5
  67. package/src/components/widgets/__tests__/DateTimeField.spec.js +5 -5
  68. package/src/components/widgets/__tests__/DomainPreview.spec.js +12 -14
  69. package/src/components/widgets/__tests__/DropdownDataLoader.spec.js +5 -5
  70. package/src/components/widgets/__tests__/DropdownField.spec.js +18 -29
  71. package/src/components/widgets/__tests__/DynamicField.spec.js +0 -1
  72. package/src/components/widgets/__tests__/HierarchyDropdown.spec.js +4 -5
  73. package/src/components/widgets/__tests__/HierarchyPreview.spec.js +0 -1
  74. package/src/components/widgets/__tests__/ImageField.spec.js +5 -10
  75. package/src/components/widgets/__tests__/NumberField.spec.js +23 -5
  76. package/src/components/widgets/__tests__/PairListField.spec.js +69 -59
  77. package/src/components/widgets/__tests__/PasswordField.spec.js +3 -4
  78. package/src/components/widgets/__tests__/RadioField.spec.js +5 -5
  79. package/src/components/widgets/__tests__/StandardDropdown.spec.js +45 -46
  80. package/src/components/widgets/__tests__/StringField.spec.js +10 -13
  81. package/src/components/widgets/__tests__/SystemPreview.spec.js +13 -15
  82. package/src/components/widgets/__tests__/TableField.spec.js +32 -32
  83. package/src/components/widgets/__tests__/TextField.spec.js +5 -5
  84. package/src/components/widgets/__tests__/__snapshots__/CheckboxField.spec.js.snap +58 -29
  85. package/src/components/widgets/__tests__/__snapshots__/ColorPickerField.spec.js.snap +221 -36
  86. package/src/components/widgets/__tests__/__snapshots__/DateField.spec.js.snap +21 -16
  87. package/src/components/widgets/__tests__/__snapshots__/DateTimeField.spec.js.snap +21 -20
  88. package/src/components/widgets/__tests__/__snapshots__/DomainPreview.spec.js.snap +26 -21
  89. package/src/components/widgets/__tests__/__snapshots__/DropdownDataLoader.spec.js.snap +1 -1
  90. package/src/components/widgets/__tests__/__snapshots__/DropdownField.spec.js.snap +93 -43
  91. package/src/components/widgets/__tests__/__snapshots__/DynamicField.spec.js.snap +2 -14
  92. package/src/components/widgets/__tests__/__snapshots__/ImageField.spec.js.snap +16 -28
  93. package/src/components/widgets/__tests__/__snapshots__/NumberField.spec.js.snap +11 -9
  94. package/src/components/widgets/__tests__/__snapshots__/PairListField.spec.js.snap +53 -39
  95. package/src/components/widgets/__tests__/__snapshots__/PasswordField.spec.js.snap +15 -8
  96. package/src/components/widgets/__tests__/__snapshots__/RadioField.spec.js.snap +41 -22
  97. package/src/components/widgets/__tests__/__snapshots__/StandardDropdown.spec.js.snap +78 -31
  98. package/src/components/widgets/__tests__/__snapshots__/StringField.spec.js.snap +78 -38
  99. package/src/components/widgets/__tests__/__snapshots__/SystemPreview.spec.js.snap +24 -21
  100. package/src/components/widgets/__tests__/__snapshots__/TableField.spec.js.snap +138 -174
  101. package/src/components/widgets/__tests__/__snapshots__/TextField.spec.js.snap +12 -7
  102. package/src/reducers/__tests__/dfMessage.spec.js +14 -18
  103. package/src/reducers/dfMessage.js +8 -7
  104. package/src/selectors/index.js +0 -1
  105. package/src/templates/components/NewTemplate.js +0 -1
  106. package/src/templates/components/Template.js +0 -2
  107. package/src/templates/components/TemplateCard.js +3 -4
  108. package/src/templates/components/TemplateCrumbs.js +2 -3
  109. package/src/templates/components/TemplateFilters.js +0 -1
  110. package/src/templates/components/TemplateLoader.js +25 -101
  111. package/src/templates/components/TemplateRoutes.js +29 -45
  112. package/src/templates/components/Templates.js +1 -5
  113. package/src/templates/components/TemplatesContext.js +3 -7
  114. package/src/templates/components/TemplatesTable.js +1 -2
  115. package/src/templates/components/__tests__/NewTemplate.spec.js +5 -10
  116. package/src/templates/components/__tests__/Template.spec.js +0 -1
  117. package/src/templates/components/__tests__/TemplateLoader.spec.js +71 -109
  118. package/src/templates/components/__tests__/TemplateRoutes.spec.js +63 -0
  119. package/src/templates/components/__tests__/TemplatesTable.spec.js +15 -9
  120. package/src/templates/components/__tests__/__snapshots__/NewTemplate.spec.js.snap +335 -22
  121. package/src/templates/components/__tests__/__snapshots__/Template.spec.js.snap +49 -48
  122. package/src/templates/components/__tests__/__snapshots__/TemplateLoader.spec.js.snap +7 -1
  123. package/src/templates/components/__tests__/__snapshots__/TemplateRoutes.spec.js.snap +38 -0
  124. package/src/templates/components/__tests__/__snapshots__/TemplatesTable.spec.js.snap +94 -1
  125. package/src/templates/components/index.js +1 -2
  126. package/src/templates/components/templateForm/ActiveGroupForm.js +1 -4
  127. package/src/templates/components/templateForm/ConditionalFieldForm.js +0 -1
  128. package/src/templates/components/templateForm/DefaultValue.js +0 -1
  129. package/src/templates/components/templateForm/DependentDomain.js +0 -1
  130. package/src/templates/components/templateForm/DependentFormField.js +0 -1
  131. package/src/templates/components/templateForm/FieldForm.js +5 -5
  132. package/src/templates/components/templateForm/GroupsList.js +0 -1
  133. package/src/templates/components/templateForm/HierarchiesList.js +1 -2
  134. package/src/templates/components/templateForm/MandatoryConditional.js +0 -1
  135. package/src/templates/components/templateForm/SwitchListForm.js +2 -2
  136. package/src/templates/components/templateForm/SwitchSegment.js +0 -1
  137. package/src/templates/components/templateForm/TemplateForm.js +1 -1
  138. package/src/templates/components/templateForm/TemplateFormActions.js +3 -4
  139. package/src/templates/components/templateForm/ValuesField.js +1 -3
  140. package/src/templates/components/templateForm/ValuesListForm.js +3 -3
  141. package/src/templates/components/templateForm/ValuesSelector.js +0 -1
  142. package/src/templates/components/templateForm/__tests__/ActiveGroupForm.spec.js +8 -13
  143. package/src/templates/components/templateForm/__tests__/DefaultValue.spec.js +198 -113
  144. package/src/templates/components/templateForm/__tests__/DependentDomain.spec.js +0 -1
  145. package/src/templates/components/templateForm/__tests__/DependentFormField.spec.js +0 -1
  146. package/src/templates/components/templateForm/__tests__/FieldForm.spec.js +106 -72
  147. package/src/templates/components/templateForm/__tests__/GroupsList.spec.js +7 -12
  148. package/src/templates/components/templateForm/__tests__/MandatoryConditional.spec.js +0 -1
  149. package/src/templates/components/templateForm/__tests__/SwitchListForm.spec.js +71 -50
  150. package/src/templates/components/templateForm/__tests__/SwitchSegment.spec.js +37 -62
  151. package/src/templates/components/templateForm/__tests__/TemplateForm.spec.js +0 -1
  152. package/src/templates/components/templateForm/__tests__/TemplateFormActions.spec.js +19 -15
  153. package/src/templates/components/templateForm/__tests__/ValuesField.spec.js +84 -62
  154. package/src/templates/components/templateForm/__tests__/ValuesListForm.spec.js +108 -144
  155. package/src/templates/components/templateForm/__tests__/ValuesSelector.spec.js +36 -36
  156. package/src/templates/components/templateForm/__tests__/__snapshots__/ActiveGroupForm.spec.js.snap +654 -86
  157. package/src/templates/components/templateForm/__tests__/__snapshots__/DefaultValue.spec.js.snap +45 -23
  158. package/src/templates/components/templateForm/__tests__/__snapshots__/FieldForm.spec.js.snap +1700 -1025
  159. package/src/templates/components/templateForm/__tests__/__snapshots__/GroupsList.spec.js.snap +44 -39
  160. package/src/templates/components/templateForm/__tests__/__snapshots__/SwitchListForm.spec.js.snap +225 -60
  161. package/src/templates/components/templateForm/__tests__/__snapshots__/SwitchSegment.spec.js.snap +1 -1
  162. package/src/templates/components/templateForm/__tests__/__snapshots__/TemplateForm.spec.js.snap +89 -92
  163. package/src/templates/components/templateForm/__tests__/__snapshots__/TemplateFormActions.spec.js.snap +66 -100
  164. package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesField.spec.js.snap +542 -231
  165. package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesListForm.spec.js.snap +264 -268
  166. package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesSelector.spec.js.snap +146 -11
  167. package/src/templates/reducers/__tests__/allTemplates.spec.js +1 -1
  168. package/src/templates/reducers/__tests__/template.spec.js +3 -2
  169. package/src/templates/reducers/__tests__/templateLoading.spec.js +2 -2
  170. package/src/templates/reducers/__tests__/templates.spec.js +1 -1
  171. package/src/templates/reducers/__tests__/templatesLoading.spec.js +1 -1
  172. package/src/templates/reducers/allTemplates.js +1 -2
  173. package/src/templates/reducers/template.js +2 -1
  174. package/src/templates/reducers/templates.js +1 -1
  175. package/src/templates/reducers/templatesLoading.js +1 -1
  176. package/src/templates/routines.js +0 -2
  177. package/src/templates/sagas/__tests__/deleteTemplate.spec.js +2 -2
  178. package/src/templates/sagas/__tests__/fetchTemplates.spec.js +3 -6
  179. package/src/templates/sagas/__tests__/updateTemplate.spec.js +4 -4
  180. package/src/templates/sagas/deleteTemplate.js +1 -1
  181. package/src/templates/sagas/fetchTemplate.js +1 -1
  182. package/src/templates/sagas/fetchTemplates.js +1 -1
  183. package/src/templates/sagas/updateTemplate.js +1 -1
  184. package/src/templates/utils/filterSwitches.js +2 -2
  185. package/src/templates/utils/filterValues.js +2 -2
  186. package/src/api/hierarchies.js +0 -4
  187. package/src/components/FieldGroupCopy.js +0 -108
  188. package/src/components/FieldGroupSubSegment/FieldGroupSubSegment.js +0 -181
  189. package/src/components/FieldGroupSubSegment/__tests__/FieldGroupSubSegment.spec.js +0 -221
  190. package/src/components/FieldGroupSubSegment/__tests__/__snapshots__/FieldGroupSubSegment.spec.js.snap +0 -230
  191. package/src/components/FieldGroupSubSegment/constants.js +0 -68
  192. package/src/components/FieldGroupSubSegment/copyValidations.js +0 -75
  193. package/src/components/FieldGroupSubSegment/handleCopyModule.js +0 -186
  194. package/src/components/__tests__/FieldGroupCopy.spec.js +0 -14
  195. package/src/components/__tests__/__snapshots__/FieldGroupCopy.spec.js.snap +0 -307
  196. package/src/components/widgets/CopyField/CopyField.js +0 -270
  197. package/src/components/widgets/CopyField/CopyFieldCell.js +0 -138
  198. package/src/components/widgets/CopyField/CopyFieldColumn.js +0 -53
  199. package/src/components/widgets/CopyField/CopyFieldSelectableCell.js +0 -71
  200. package/src/components/widgets/CopyField/CustomStyles.js +0 -91
  201. package/src/components/widgets/CopyField/__tests__/CopyField.spec.js +0 -82
  202. package/src/components/widgets/CopyField/__tests__/CopyFieldCell.spec.js +0 -67
  203. package/src/components/widgets/CopyField/__tests__/CopyFieldColumn.spec.js +0 -33
  204. package/src/components/widgets/CopyField/__tests__/CopyFieldSelectableCell.spec.js +0 -49
  205. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyField.spec.js.snap +0 -279
  206. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldCell.spec.js.snap +0 -67
  207. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldColumn.spec.js.snap +0 -42
  208. package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldSelectableCell.spec.js.snap +0 -60
  209. package/src/hooks/useHierarchies.js +0 -112
  210. package/src/selectors/subscopedTemplates.js +0 -16
  211. package/src/templates/components/TemplatesLoader.js +0 -24
  212. package/src/templates/components/__tests__/TemplatesLoader.spec.js +0 -29
@@ -1,181 +0,0 @@
1
- import _ from "lodash/fp";
2
- import React, { useState, useRef } from "react";
3
- import PropTypes from "prop-types";
4
- import { Segment, Header, Button, Icon, Popup } from "semantic-ui-react";
5
- import { FormattedMessage } from "react-intl";
6
- import DynamicField from "../widgets/DynamicField";
7
- import { validateCopyEntries, validateCopyFields } from "./copyValidations";
8
- import { getCopyJson, getCopyForm } from "./handleCopyModule";
9
-
10
- export const FieldGroupSubSegment = ({
11
- onFieldChange,
12
- name,
13
- fields,
14
- prevFields
15
- }) => {
16
- const fileFormat = JSON.parse(fields || "{}")["fileFormat"] || "";
17
- const formatOptions = _.flow(
18
- _.find(field => field.name === name),
19
- _.pathOr([], "values.file_types"),
20
- _.defaultTo([]),
21
- _.map(({ text, value }) => ({ text: value, value: text }))
22
- )(prevFields);
23
- const [isFieldView, setFieldView] = useState(true);
24
- const [errorMessage, setErrorMessage] = useState(null);
25
- const [temporaryJson, setTemporaryJson] = useState(null);
26
- // eslint-disable-next-line fp/no-let
27
- let copySegment = getCopyForm(fields, fileFormat, formatOptions);
28
- const prevCountRef = useRef();
29
- const onChangeFormat = fields => {
30
- prevCountRef.current = fileFormat;
31
- // eslint-disable-next-line fp/no-mutation
32
- copySegment = getCopyForm(fields, fileFormat, formatOptions);
33
- const copyJson = JSON.stringify(
34
- getCopyJson(fields, fileFormat, hasFormatChanged)
35
- );
36
-
37
- onFieldChange(null, { name, value: copyJson });
38
- setTemporaryJson("");
39
- setErrorMessage("");
40
- };
41
-
42
- const onChangeInSegment = (e, { name: fieldName, value: tokenValue }) => {
43
- if (
44
- ["delimiter", "quoted", "escape_char"].includes(fieldName) &&
45
- tokenValue.length > 1
46
- )
47
- return;
48
- const jsonCompleteField = JSON.parse(fields || "{}");
49
- const { values } = copySegment.find(field => field.label === fieldName);
50
- const jsonValue = values.find(
51
- value => Object.keys(value)[0] === tokenValue
52
- );
53
- onFieldChange(e, {
54
- name,
55
- value: JSON.stringify({
56
- ...jsonCompleteField,
57
- [fieldName]: jsonValue ? jsonValue[tokenValue] : tokenValue
58
- })
59
- });
60
- };
61
-
62
- const onChangeInField = (e, { name: fieldName, value: originalValue }) => {
63
- try {
64
- const fieldContent = JSON.parse(originalValue || "{}");
65
- validateJson(fieldContent);
66
- setErrorMessage("");
67
- setTemporaryJson(null);
68
- onFieldChange(e, {
69
- name: fieldName,
70
- value: JSON.stringify(fieldContent)
71
- });
72
- } catch (error) {
73
- const formatMessage = "template.form.subsegment.error.jsonformat";
74
- error.name === "SyntaxError"
75
- ? setErrorMessage(formatMessage)
76
- : setErrorMessage(error.message);
77
- setTemporaryJson(originalValue);
78
- }
79
- };
80
-
81
- const validateJson = fieldContent => {
82
- validateCopyFields(
83
- validateCopyEntries(fieldContent, formatOptions),
84
- formatOptions
85
- );
86
- };
87
-
88
- const getFieldOnPreviousState = () => {
89
- const validJson = JSON.stringify(
90
- getCopyJson(fields, fileFormat, hasFormatChanged)
91
- );
92
- const fieldCopy = prevFields.find(field => field.name === name);
93
- return {
94
- ...fieldCopy,
95
- label: "JSON",
96
- value: temporaryJson || validJson,
97
- widget: "textarea"
98
- };
99
- };
100
-
101
- const hasFormatChanged = fileFormat !== prevCountRef.current;
102
- hasFormatChanged && onChangeFormat(fields);
103
-
104
- return (
105
- <Segment>
106
- {name !== "undefined" && (
107
- <Header style={{ display: "inline-block" }} as="h4" content={name} />
108
- )}
109
- <div style={{ display: "inline-flex", float: "right" }}>
110
- <Popup
111
- basic
112
- position="top center"
113
- content={
114
- <FormattedMessage id="template.form.subsegment.info.popup" />
115
- }
116
- trigger={
117
- <Icon
118
- size="large"
119
- style={{ display: !!fileFormat ? "none" : "block" }}
120
- name="info circle"
121
- />
122
- }
123
- />
124
- <Button
125
- onClick={() => setFieldView(!isFieldView)}
126
- style={{ backgroundColor: "#002057", color: "white" }}
127
- icon
128
- positive
129
- disabled={!!errorMessage || !fileFormat}
130
- size="small"
131
- >
132
- <Icon name={isFieldView ? "pencil alternate" : "arrow left"}></Icon>
133
- </Button>
134
- </div>
135
-
136
- {!isFieldView || fileFormat === undefined ? (
137
- <div>
138
- <DynamicField
139
- onChange={onChangeInField.bind(this)}
140
- field={getFieldOnPreviousState()}
141
- />
142
- <span style={{ color: "red" }}>
143
- {errorMessage && (
144
- <FormattedMessage className="errorMessage" id={errorMessage} />
145
- )}
146
- </span>
147
- </div>
148
- ) : (
149
- <>
150
- {copySegment && (
151
- <DynamicField
152
- key={0}
153
- onChange={onChangeInSegment.bind(this)}
154
- field={copySegment.find(field => field.name === "fileFormat")}
155
- />
156
- )}
157
- {copySegment && fileFormat ? (
158
- <>
159
- {copySegment.slice(1).map((field, i) => (
160
- <DynamicField
161
- key={i + 1}
162
- onChange={onChangeInSegment.bind(this)}
163
- field={field}
164
- />
165
- ))}
166
- </>
167
- ) : null}
168
- </>
169
- )}
170
- </Segment>
171
- );
172
- };
173
-
174
- FieldGroupSubSegment.propTypes = {
175
- onFieldChange: PropTypes.func,
176
- name: PropTypes.string,
177
- fields: PropTypes.string,
178
- prevFields: PropTypes.array
179
- };
180
-
181
- export default FieldGroupSubSegment;
@@ -1,221 +0,0 @@
1
- import React from "react";
2
- import { shallow } from "enzyme";
3
- import { FieldGroupSubSegment } from "../FieldGroupSubSegment";
4
-
5
- describe("<FieldGroupSubSegment />", () => {
6
- const setState = jest.fn();
7
- const useStateSpy = jest.spyOn(React, "useState");
8
- useStateSpy.mockImplementation((init) => [init, setState]);
9
-
10
- const onFieldChange = jest.fn();
11
- const name = "copy";
12
- const fields =
13
- '{"fileFormat":"DAT","header":true,"compression":"brotli","fields":[{"name":"New3","type":"decimal","size":11,"scale":2,"precision":10},{"name":"New5","type":"datetime","size":10,"format":"%d-%m-%Y %H:%M:%S"},{"name":"New1","type":"string","size":40},{"name":"New0","type":"datetime","size":10,"format":"%d-%m-%Y %H:%M:%S"},{"name":"New4","type":"string","size":40}]}';
14
- const prevFields = [
15
- {
16
- cardinality: "1",
17
- label: "Entidad",
18
- name: "entidad",
19
- parsedValues: undefined,
20
- type: "string",
21
- value: "a",
22
- widget: "string",
23
- },
24
- {
25
- cardinality: "1",
26
- default: "",
27
- description: "des",
28
- label: "copy",
29
- name: "copy",
30
- parsedValues: undefined,
31
- type: "string",
32
- value:
33
- '{"fileFormat":"DAT","header":true,"compression":"brotli","fields":[{"name":"New3","type":"decimal","size":11,"scale":2,"precision":10},{"name":"New5","type":"datetime","size":10,"format":"%d-%m-%Y %H:%M:%S"},{"name":"New1","type":"string","size":40},{"name":"New0","type":"datetime","size":10,"format":"%d-%m-%Y %H:%M:%S"},{"name":"New4","type":"string","size":40}]}',
34
- values: {
35
- file_types: [
36
- { text: "template.widget.copy.char.separator.format", value: "CSV" },
37
- { text: "template.widget.copy.without.fixed.column", value: "JSON" },
38
- { text: "template.widget.copy.fixed.column", value: "DAT" },
39
- { text: "template.widget.copy.fixed.column", value: "TXT" },
40
- { text: "template.widget.copy.fixed.column", value: "Sin formato" },
41
- { text: "template.widget.copy.without.fixed.column", value: "hola" },
42
- ],
43
- },
44
- widget: "copy",
45
- },
46
- ];
47
- const props = { onFieldChange, name, fields, prevFields };
48
-
49
- it("matches the latest snapshot", () => {
50
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
51
- expect(wrapper).toMatchSnapshot();
52
- });
53
-
54
- it("set field view", () => {
55
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
56
- wrapper.find("Segment > div Button").simulate("click");
57
- expect(wrapper.find("DynamicField").length).toBe(1);
58
- });
59
-
60
- it("onChangeMethod in field - field valid", () => {
61
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
62
- wrapper.find("Segment > div Button").simulate("click");
63
- wrapper
64
- .find("DynamicField")
65
- .props()
66
- .onChange(
67
- {
68
- preventDefault() {},
69
- target: {},
70
- },
71
- {
72
- name: "copy",
73
- value:
74
- '{"fileFormat": "DAT", "compression": "brotli", "fields": [{ "name": "New54", "type": "string", "size": 40 },{ "name": "New53", "type": "string", "size": 40 }]}',
75
- }
76
- );
77
- expect(wrapper.find("Segment > div Button").props().disabled).toBe(true);
78
- });
79
-
80
- it("onChangeMethod in field - field invalid - requiredparam", () => {
81
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
82
- wrapper.find("Segment > div Button").simulate("click");
83
- wrapper
84
- .find("DynamicField")
85
- .props()
86
- .onChange(
87
- {
88
- preventDefault() {},
89
- target: {},
90
- },
91
- {
92
- name: "copy",
93
- value:
94
- '{"fileFormat": "DAT", "compression": "brotli", "fields": [{ "name": "New54", "type": "string", "size": 40 },{ "name": "New53", "type": "string", "size": 40 }]}',
95
- }
96
- );
97
- expect(wrapper.find(".errorMessage").props().id).toBe(
98
- "template.form.subsegment.error.requiredparam"
99
- );
100
- });
101
-
102
- it("onChangeMethod in field - field invalid - wrongparams", () => {
103
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
104
- wrapper.find("Segment > div Button").simulate("click");
105
- wrapper
106
- .find("DynamicField")
107
- .props()
108
- .onChange(
109
- {
110
- preventDefault() {},
111
- target: {},
112
- },
113
- {
114
- name: "copy",
115
- value:
116
- '{"fileFormat": "DAT", "header": false, "compression": "brotli", "fields": [{ "name": "New54", "type": "string"},{ "name": "New53", "type": "string", "size": 40 }]}',
117
- }
118
- );
119
- expect(wrapper.find(".errorMessage").props().id).toBe(
120
- "template.form.subsegment.error.wrongparams"
121
- );
122
- });
123
-
124
- it("onChangeMethod in field - field invalid - onechar", () => {
125
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
126
- wrapper.find("Segment > div Button").simulate("click");
127
- wrapper
128
- .find("DynamicField")
129
- .props()
130
- .onChange(
131
- {
132
- preventDefault() {},
133
- target: {},
134
- },
135
- {
136
- name: "copy",
137
- value:
138
- '{"fileFormat": "DAT", "header": false, "compression": "brotli", "delimiter": "sss","fields": [{ "name": "New54", "type": "string"},{ "name": "New53", "type": "string", "size": 40 }]}',
139
- }
140
- );
141
- expect(wrapper.find(".errorMessage").props().id).toBe(
142
- "template.form.subsegment.error.onechar"
143
- );
144
- });
145
-
146
- it("onChangeMethod in field - field invalid - wrongname", () => {
147
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
148
- wrapper.find("Segment > div Button").simulate("click");
149
- wrapper
150
- .find("DynamicField")
151
- .props()
152
- .onChange(
153
- {
154
- preventDefault() {},
155
- target: {},
156
- },
157
- {
158
- name: "copy",
159
- value:
160
- '{"fileFormat": "DAT", "header": false, "compression": "brotli","fields": [{ "name": "New54.", "type": "string", "size": 40},{ "name": "New53", "type": "string", "size": 40 }]}',
161
- }
162
- );
163
- expect(wrapper.find(".errorMessage").props().id).toBe(
164
- "template.form.subsegment.error.wrongname"
165
- );
166
- });
167
-
168
- it("onChangeMethod in field - field invalid - nofileformat", () => {
169
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
170
- wrapper.find("Segment > div Button").simulate("click");
171
- wrapper
172
- .find("DynamicField")
173
- .props()
174
- .onChange(
175
- {
176
- preventDefault() {},
177
- target: {},
178
- },
179
- {
180
- name: "copy",
181
- value:
182
- '{"header": false, "compression": "brotli","fields": [{ "name": "New54", "type": "string", "size": 40},{ "name": "New53", "type": "string", "size": 40 }]}',
183
- }
184
- );
185
- expect(wrapper.find(".errorMessage").props().id).toBe(
186
- "template.form.subsegment.error.nofileformat"
187
- );
188
- });
189
-
190
- it("onChangeMethod in field - field invalid - wrongfield", () => {
191
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
192
- wrapper.find("Segment > div Button").simulate("click");
193
- wrapper
194
- .find("DynamicField")
195
- .props()
196
- .onChange(
197
- {
198
- preventDefault() {},
199
- target: {},
200
- },
201
- {
202
- name: "copy",
203
- value:
204
- '{"fileFormat": "DAT","header": false, "compression": "brotli","fields": [{ "name": "New54", "type": "test", "size": 40},{ "name": "New53", "type": "string", "size": 40 }]}',
205
- }
206
- );
207
- expect(wrapper.find(".errorMessage").props().id).toBe(
208
- "template.form.subsegment.error.wrongfield"
209
- );
210
- });
211
-
212
- it("change field format", () => {
213
- const wrapper = shallow(<FieldGroupSubSegment {...props} />);
214
- wrapper
215
- .find("DynamicField")
216
- .at(0)
217
- .props()
218
- .onChange({}, { name: "fileFormat", value: "CSV" });
219
- expect(props.onFieldChange).toHaveBeenCalled();
220
- });
221
- });
@@ -1,230 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`<FieldGroupSubSegment /> matches the latest snapshot 1`] = `
4
- <Segment>
5
- <Header
6
- as="h4"
7
- content="copy"
8
- style={
9
- {
10
- "display": "inline-block",
11
- }
12
- }
13
- />
14
- <div
15
- style={
16
- {
17
- "display": "inline-flex",
18
- "float": "right",
19
- }
20
- }
21
- >
22
- <Popup
23
- basic={true}
24
- content={
25
- <Memo(MemoizedFormattedMessage)
26
- id="template.form.subsegment.info.popup"
27
- />
28
- }
29
- disabled={false}
30
- eventsEnabled={true}
31
- on={
32
- [
33
- "click",
34
- "hover",
35
- ]
36
- }
37
- pinned={false}
38
- popperModifiers={[]}
39
- position="top center"
40
- trigger={
41
- <Icon
42
- as="i"
43
- name="info circle"
44
- size="large"
45
- style={
46
- {
47
- "display": "none",
48
- }
49
- }
50
- />
51
- }
52
- />
53
- <Button
54
- as="button"
55
- disabled={false}
56
- icon={true}
57
- onClick={[Function]}
58
- positive={true}
59
- size="small"
60
- style={
61
- {
62
- "backgroundColor": "#002057",
63
- "color": "white",
64
- }
65
- }
66
- >
67
- <Icon
68
- as="i"
69
- name="pencil alternate"
70
- />
71
- </Button>
72
- </div>
73
- <DynamicField
74
- field={
75
- {
76
- "cardinality": "1",
77
- "description": "",
78
- "label": "fileFormat",
79
- "name": "fileFormat",
80
- "parsedValues": [
81
- {
82
- "text": "CSV",
83
- "value": "CSV",
84
- },
85
- {
86
- "text": "JSON",
87
- "value": "JSON",
88
- },
89
- {
90
- "text": "DAT",
91
- "value": "DAT",
92
- },
93
- {
94
- "text": "TXT",
95
- "value": "TXT",
96
- },
97
- {
98
- "text": "Sin formato",
99
- "value": "Sin formato",
100
- },
101
- {
102
- "text": "hola",
103
- "value": "hola",
104
- },
105
- ],
106
- "type": "string",
107
- "value": "DAT",
108
- "values": [],
109
- "widget": "dropdown",
110
- }
111
- }
112
- key="0"
113
- onChange={[Function]}
114
- />
115
- <DynamicField
116
- field={
117
- {
118
- "cardinality": "1",
119
- "description": "",
120
- "label": "header",
121
- "name": "header",
122
- "parsedValues": [
123
- {
124
- "text": "true",
125
- "value": "true",
126
- },
127
- {
128
- "text": "false",
129
- "value": "false",
130
- },
131
- ],
132
- "type": "string",
133
- "value": "true",
134
- "values": [
135
- {
136
- "true": true,
137
- },
138
- {
139
- "false": false,
140
- },
141
- ],
142
- "widget": "radio",
143
- }
144
- }
145
- key="1"
146
- onChange={[Function]}
147
- />
148
- <DynamicField
149
- field={
150
- {
151
- "cardinality": "1",
152
- "description": "",
153
- "label": "compression",
154
- "name": "compression",
155
- "parsedValues": [
156
- {
157
- "text": "none",
158
- "value": "none",
159
- },
160
- {
161
- "text": "gzip",
162
- "value": "gzip",
163
- },
164
- {
165
- "text": "bzip2",
166
- "value": "bzip2",
167
- },
168
- {
169
- "text": "brotli",
170
- "value": "brotli",
171
- },
172
- ],
173
- "type": "string",
174
- "value": "brotli",
175
- "values": [],
176
- "widget": "dropdown",
177
- }
178
- }
179
- key="2"
180
- onChange={[Function]}
181
- />
182
- <DynamicField
183
- field={
184
- {
185
- "cardinality": "1",
186
- "description": "",
187
- "label": "fields",
188
- "name": "fields",
189
- "parsedValues": [],
190
- "type": "string",
191
- "value": [
192
- {
193
- "name": "New3",
194
- "precision": 10,
195
- "scale": 2,
196
- "size": 11,
197
- "type": "decimal",
198
- },
199
- {
200
- "format": "%d-%m-%Y %H:%M:%S",
201
- "name": "New5",
202
- "size": 10,
203
- "type": "datetime",
204
- },
205
- {
206
- "name": "New1",
207
- "size": 40,
208
- "type": "string",
209
- },
210
- {
211
- "format": "%d-%m-%Y %H:%M:%S",
212
- "name": "New0",
213
- "size": 10,
214
- "type": "datetime",
215
- },
216
- {
217
- "name": "New4",
218
- "size": 40,
219
- "type": "string",
220
- },
221
- ],
222
- "values": [],
223
- "widget": "copy",
224
- }
225
- }
226
- key="3"
227
- onChange={[Function]}
228
- />
229
- </Segment>
230
- `;
@@ -1,68 +0,0 @@
1
- const constants = {
2
- ENTRIES_FORMAT: {
3
- "template.widget.copy.char.separator.format": [
4
- "header",
5
- "compression",
6
- "delimiter",
7
- "fileFormat",
8
- "fields",
9
- "quoted",
10
- "escape_char"
11
- ],
12
- "template.widget.copy.without.fixed.column": [
13
- "compression",
14
- "fileFormat",
15
- "fields"
16
- ],
17
- "template.widget.copy.fixed.column": [
18
- "header",
19
- "compression",
20
- "fileFormat",
21
- "fields"
22
- ]
23
- },
24
- REQUIRED_COPY_ENTRIES: {
25
- "template.widget.copy.char.separator.format": [
26
- "header",
27
- "compression",
28
- "delimiter",
29
- "fileFormat",
30
- "fields"
31
- ],
32
- "template.widget.copy.without.fixed.column": [
33
- "compression",
34
- "fileFormat",
35
- "fields"
36
- ],
37
- "template.widget.copy.fixed.column": [
38
- "header",
39
- "compression",
40
- "fileFormat",
41
- "fields"
42
- ]
43
- },
44
- WITHOUT_SIZE: [
45
- "template.widget.copy.char.separator.format",
46
- "template.widget.copy.without.fixed.column"
47
- ],
48
- VALID_COMPRESSION: ["none", "gzip", "bzip2", "brotli"],
49
- VALID_FIELD_TYPES: [
50
- "string",
51
- "integer",
52
- "decimal",
53
- "date",
54
- "datetime",
55
- "time",
56
- "boolean"
57
- ]
58
- };
59
-
60
- export default constants;
61
- export const {
62
- ENTRIES_FORMAT,
63
- REQUIRED_COPY_ENTRIES,
64
- WITHOUT_SIZE,
65
- VALID_COMPRESSION,
66
- VALID_FIELD_TYPES,
67
- AUX_FORMAT_OPTIONS
68
- } = constants;