@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.
- package/package.json +43 -67
- package/src/components/DynamicFieldValue.js +0 -1
- package/src/components/DynamicForm.js +5 -4
- package/src/components/DynamicFormViewer.js +0 -1
- package/src/components/DynamicFormWithTranslations.js +3 -3
- package/src/components/EditableDynamicFieldValue.js +1 -2
- package/src/components/FieldGroupDetail.js +0 -1
- package/src/components/FieldGroupSegment.js +17 -29
- package/src/components/FieldGroupWithTranslations.js +19 -38
- package/src/components/FieldViewerValue.js +4 -7
- package/src/components/OriginLabel.js +0 -1
- package/src/components/SelectDynamicFormWithTranslations.js +4 -6
- package/src/components/SelectableDynamicForm.js +5 -11
- package/src/components/__tests__/DynamicFieldValue.spec.js +0 -1
- package/src/components/__tests__/DynamicForm.spec.js +25 -23
- package/src/components/__tests__/EditableDynamicFieldValue.spec.js +0 -1
- package/src/components/__tests__/FieldGroupDetail.spec.js +0 -1
- package/src/components/__tests__/FieldViewerValue.spec.js +1 -6
- package/src/components/__tests__/SelectableDynamicForm.spec.js +102 -46
- package/src/components/__tests__/__snapshots__/DynamicFieldValue.spec.js.snap +2 -2
- package/src/components/__tests__/__snapshots__/DynamicForm.spec.js.snap +94 -81
- package/src/components/__tests__/__snapshots__/FieldGroupDetail.spec.js.snap +2 -2
- package/src/components/__tests__/__snapshots__/FieldViewerValue.spec.js.snap +1 -7
- package/src/components/__tests__/__snapshots__/SelectableDynamicForm.spec.js.snap +39 -39
- package/src/components/hierarchies/Hierarchies.js +2 -4
- package/src/components/hierarchies/HierarchiesView.js +1 -2
- package/src/components/hierarchies/HierarchyCrumbs.js +1 -2
- package/src/components/hierarchies/HierarchyRoutes.js +44 -39
- package/src/components/hierarchies/HierarchyView.js +4 -7
- package/src/components/hierarchies/__tests__/Hierarchies.spec.js +2 -3
- package/src/components/hierarchies/__tests__/HierarchiesView.spec.js +3 -7
- package/src/components/hierarchies/__tests__/HierarchyCrumbs.spec.js +0 -1
- package/src/components/hierarchies/__tests__/HierarchyRoutes.spec.js +79 -0
- package/src/components/hierarchies/__tests__/HierarchyView.spec.js +2 -10
- package/src/components/hierarchies/__tests__/__snapshots__/Hierarchies.spec.js.snap +1 -0
- package/src/components/hierarchies/__tests__/__snapshots__/HierarchiesView.spec.js.snap +7 -5
- package/src/components/hierarchies/__tests__/__snapshots__/HierarchyCrumbs.spec.js.snap +4 -2
- package/src/components/hierarchies/__tests__/__snapshots__/HierarchyRoutes.spec.js.snap +60 -0
- package/src/components/hierarchies/__tests__/__snapshots__/HierarchyView.spec.js.snap +8 -6
- package/src/components/widgets/CheckboxField.js +0 -1
- package/src/components/widgets/ColorPickerField.js +2 -3
- package/src/components/widgets/DateField.js +0 -1
- package/src/components/widgets/DateTimeField.js +0 -1
- package/src/components/widgets/DomainDropdown.js +1 -1
- package/src/components/widgets/DomainPreview.js +1 -2
- package/src/components/widgets/DropdownDataLoader.js +3 -3
- package/src/components/widgets/DropdownField.js +5 -4
- package/src/components/widgets/DynamicField.js +0 -5
- package/src/components/widgets/EnrichedTextField.js +0 -1
- package/src/components/widgets/HierarchyDropdown.js +1 -1
- package/src/components/widgets/HierarchyPreview.js +0 -1
- package/src/components/widgets/IdentifierField.js +0 -1
- package/src/components/widgets/ImageField.js +1 -1
- package/src/components/widgets/ImagePreview.js +0 -1
- package/src/components/widgets/NumberField.js +6 -7
- package/src/components/widgets/PairListField.js +5 -6
- package/src/components/widgets/PasswordField.js +1 -2
- package/src/components/widgets/RadioField.js +0 -1
- package/src/components/widgets/StandardDropdown.js +0 -1
- package/src/components/widgets/StringField.js +0 -1
- package/src/components/widgets/SystemPreview.js +2 -3
- package/src/components/widgets/TableField.js +5 -5
- package/src/components/widgets/TextField.js +1 -2
- package/src/components/widgets/__tests__/CheckboxField.spec.js +33 -23
- package/src/components/widgets/__tests__/ColorPickerField.spec.js +5 -12
- package/src/components/widgets/__tests__/DateField.spec.js +5 -5
- package/src/components/widgets/__tests__/DateTimeField.spec.js +5 -5
- package/src/components/widgets/__tests__/DomainPreview.spec.js +12 -14
- package/src/components/widgets/__tests__/DropdownDataLoader.spec.js +5 -5
- package/src/components/widgets/__tests__/DropdownField.spec.js +18 -29
- package/src/components/widgets/__tests__/DynamicField.spec.js +0 -1
- package/src/components/widgets/__tests__/HierarchyDropdown.spec.js +4 -5
- package/src/components/widgets/__tests__/HierarchyPreview.spec.js +0 -1
- package/src/components/widgets/__tests__/ImageField.spec.js +5 -10
- package/src/components/widgets/__tests__/NumberField.spec.js +23 -5
- package/src/components/widgets/__tests__/PairListField.spec.js +69 -59
- package/src/components/widgets/__tests__/PasswordField.spec.js +3 -4
- package/src/components/widgets/__tests__/RadioField.spec.js +5 -5
- package/src/components/widgets/__tests__/StandardDropdown.spec.js +45 -46
- package/src/components/widgets/__tests__/StringField.spec.js +10 -13
- package/src/components/widgets/__tests__/SystemPreview.spec.js +13 -15
- package/src/components/widgets/__tests__/TableField.spec.js +32 -32
- package/src/components/widgets/__tests__/TextField.spec.js +5 -5
- package/src/components/widgets/__tests__/__snapshots__/CheckboxField.spec.js.snap +58 -29
- package/src/components/widgets/__tests__/__snapshots__/ColorPickerField.spec.js.snap +221 -36
- package/src/components/widgets/__tests__/__snapshots__/DateField.spec.js.snap +21 -16
- package/src/components/widgets/__tests__/__snapshots__/DateTimeField.spec.js.snap +21 -20
- package/src/components/widgets/__tests__/__snapshots__/DomainPreview.spec.js.snap +26 -21
- package/src/components/widgets/__tests__/__snapshots__/DropdownDataLoader.spec.js.snap +1 -1
- package/src/components/widgets/__tests__/__snapshots__/DropdownField.spec.js.snap +93 -43
- package/src/components/widgets/__tests__/__snapshots__/DynamicField.spec.js.snap +2 -14
- package/src/components/widgets/__tests__/__snapshots__/ImageField.spec.js.snap +16 -28
- package/src/components/widgets/__tests__/__snapshots__/NumberField.spec.js.snap +11 -9
- package/src/components/widgets/__tests__/__snapshots__/PairListField.spec.js.snap +53 -39
- package/src/components/widgets/__tests__/__snapshots__/PasswordField.spec.js.snap +15 -8
- package/src/components/widgets/__tests__/__snapshots__/RadioField.spec.js.snap +41 -22
- package/src/components/widgets/__tests__/__snapshots__/StandardDropdown.spec.js.snap +78 -31
- package/src/components/widgets/__tests__/__snapshots__/StringField.spec.js.snap +78 -38
- package/src/components/widgets/__tests__/__snapshots__/SystemPreview.spec.js.snap +24 -21
- package/src/components/widgets/__tests__/__snapshots__/TableField.spec.js.snap +138 -174
- package/src/components/widgets/__tests__/__snapshots__/TextField.spec.js.snap +12 -7
- package/src/reducers/__tests__/dfMessage.spec.js +14 -18
- package/src/reducers/dfMessage.js +8 -7
- package/src/selectors/index.js +0 -1
- package/src/templates/components/NewTemplate.js +0 -1
- package/src/templates/components/Template.js +0 -2
- package/src/templates/components/TemplateCard.js +3 -4
- package/src/templates/components/TemplateCrumbs.js +2 -3
- package/src/templates/components/TemplateFilters.js +0 -1
- package/src/templates/components/TemplateLoader.js +25 -101
- package/src/templates/components/TemplateRoutes.js +29 -45
- package/src/templates/components/Templates.js +1 -5
- package/src/templates/components/TemplatesContext.js +3 -7
- package/src/templates/components/TemplatesTable.js +1 -2
- package/src/templates/components/__tests__/NewTemplate.spec.js +5 -10
- package/src/templates/components/__tests__/Template.spec.js +0 -1
- package/src/templates/components/__tests__/TemplateLoader.spec.js +71 -109
- package/src/templates/components/__tests__/TemplateRoutes.spec.js +63 -0
- package/src/templates/components/__tests__/TemplatesTable.spec.js +15 -9
- package/src/templates/components/__tests__/__snapshots__/NewTemplate.spec.js.snap +335 -22
- package/src/templates/components/__tests__/__snapshots__/Template.spec.js.snap +49 -48
- package/src/templates/components/__tests__/__snapshots__/TemplateLoader.spec.js.snap +7 -1
- package/src/templates/components/__tests__/__snapshots__/TemplateRoutes.spec.js.snap +38 -0
- package/src/templates/components/__tests__/__snapshots__/TemplatesTable.spec.js.snap +94 -1
- package/src/templates/components/index.js +1 -2
- package/src/templates/components/templateForm/ActiveGroupForm.js +1 -4
- package/src/templates/components/templateForm/ConditionalFieldForm.js +0 -1
- package/src/templates/components/templateForm/DefaultValue.js +0 -1
- package/src/templates/components/templateForm/DependentDomain.js +0 -1
- package/src/templates/components/templateForm/DependentFormField.js +0 -1
- package/src/templates/components/templateForm/FieldForm.js +5 -5
- package/src/templates/components/templateForm/GroupsList.js +0 -1
- package/src/templates/components/templateForm/HierarchiesList.js +1 -2
- package/src/templates/components/templateForm/MandatoryConditional.js +0 -1
- package/src/templates/components/templateForm/SwitchListForm.js +2 -2
- package/src/templates/components/templateForm/SwitchSegment.js +0 -1
- package/src/templates/components/templateForm/TemplateForm.js +1 -1
- package/src/templates/components/templateForm/TemplateFormActions.js +3 -4
- package/src/templates/components/templateForm/ValuesField.js +1 -3
- package/src/templates/components/templateForm/ValuesListForm.js +3 -3
- package/src/templates/components/templateForm/ValuesSelector.js +0 -1
- package/src/templates/components/templateForm/__tests__/ActiveGroupForm.spec.js +8 -13
- package/src/templates/components/templateForm/__tests__/DefaultValue.spec.js +198 -113
- package/src/templates/components/templateForm/__tests__/DependentDomain.spec.js +0 -1
- package/src/templates/components/templateForm/__tests__/DependentFormField.spec.js +0 -1
- package/src/templates/components/templateForm/__tests__/FieldForm.spec.js +106 -72
- package/src/templates/components/templateForm/__tests__/GroupsList.spec.js +7 -12
- package/src/templates/components/templateForm/__tests__/MandatoryConditional.spec.js +0 -1
- package/src/templates/components/templateForm/__tests__/SwitchListForm.spec.js +71 -50
- package/src/templates/components/templateForm/__tests__/SwitchSegment.spec.js +37 -62
- package/src/templates/components/templateForm/__tests__/TemplateForm.spec.js +0 -1
- package/src/templates/components/templateForm/__tests__/TemplateFormActions.spec.js +19 -15
- package/src/templates/components/templateForm/__tests__/ValuesField.spec.js +84 -62
- package/src/templates/components/templateForm/__tests__/ValuesListForm.spec.js +108 -144
- package/src/templates/components/templateForm/__tests__/ValuesSelector.spec.js +36 -36
- package/src/templates/components/templateForm/__tests__/__snapshots__/ActiveGroupForm.spec.js.snap +654 -86
- package/src/templates/components/templateForm/__tests__/__snapshots__/DefaultValue.spec.js.snap +45 -23
- package/src/templates/components/templateForm/__tests__/__snapshots__/FieldForm.spec.js.snap +1700 -1025
- package/src/templates/components/templateForm/__tests__/__snapshots__/GroupsList.spec.js.snap +44 -39
- package/src/templates/components/templateForm/__tests__/__snapshots__/SwitchListForm.spec.js.snap +225 -60
- package/src/templates/components/templateForm/__tests__/__snapshots__/SwitchSegment.spec.js.snap +1 -1
- package/src/templates/components/templateForm/__tests__/__snapshots__/TemplateForm.spec.js.snap +89 -92
- package/src/templates/components/templateForm/__tests__/__snapshots__/TemplateFormActions.spec.js.snap +66 -100
- package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesField.spec.js.snap +542 -231
- package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesListForm.spec.js.snap +264 -268
- package/src/templates/components/templateForm/__tests__/__snapshots__/ValuesSelector.spec.js.snap +146 -11
- package/src/templates/reducers/__tests__/allTemplates.spec.js +1 -1
- package/src/templates/reducers/__tests__/template.spec.js +3 -2
- package/src/templates/reducers/__tests__/templateLoading.spec.js +2 -2
- package/src/templates/reducers/__tests__/templates.spec.js +1 -1
- package/src/templates/reducers/__tests__/templatesLoading.spec.js +1 -1
- package/src/templates/reducers/allTemplates.js +1 -2
- package/src/templates/reducers/template.js +2 -1
- package/src/templates/reducers/templates.js +1 -1
- package/src/templates/reducers/templatesLoading.js +1 -1
- package/src/templates/routines.js +0 -2
- package/src/templates/sagas/__tests__/deleteTemplate.spec.js +2 -2
- package/src/templates/sagas/__tests__/fetchTemplates.spec.js +3 -6
- package/src/templates/sagas/__tests__/updateTemplate.spec.js +4 -4
- package/src/templates/sagas/deleteTemplate.js +1 -1
- package/src/templates/sagas/fetchTemplate.js +1 -1
- package/src/templates/sagas/fetchTemplates.js +1 -1
- package/src/templates/sagas/updateTemplate.js +1 -1
- package/src/templates/utils/filterSwitches.js +2 -2
- package/src/templates/utils/filterValues.js +2 -2
- package/src/api/hierarchies.js +0 -4
- package/src/components/FieldGroupCopy.js +0 -108
- package/src/components/FieldGroupSubSegment/FieldGroupSubSegment.js +0 -181
- package/src/components/FieldGroupSubSegment/__tests__/FieldGroupSubSegment.spec.js +0 -221
- package/src/components/FieldGroupSubSegment/__tests__/__snapshots__/FieldGroupSubSegment.spec.js.snap +0 -230
- package/src/components/FieldGroupSubSegment/constants.js +0 -68
- package/src/components/FieldGroupSubSegment/copyValidations.js +0 -75
- package/src/components/FieldGroupSubSegment/handleCopyModule.js +0 -186
- package/src/components/__tests__/FieldGroupCopy.spec.js +0 -14
- package/src/components/__tests__/__snapshots__/FieldGroupCopy.spec.js.snap +0 -307
- package/src/components/widgets/CopyField/CopyField.js +0 -270
- package/src/components/widgets/CopyField/CopyFieldCell.js +0 -138
- package/src/components/widgets/CopyField/CopyFieldColumn.js +0 -53
- package/src/components/widgets/CopyField/CopyFieldSelectableCell.js +0 -71
- package/src/components/widgets/CopyField/CustomStyles.js +0 -91
- package/src/components/widgets/CopyField/__tests__/CopyField.spec.js +0 -82
- package/src/components/widgets/CopyField/__tests__/CopyFieldCell.spec.js +0 -67
- package/src/components/widgets/CopyField/__tests__/CopyFieldColumn.spec.js +0 -33
- package/src/components/widgets/CopyField/__tests__/CopyFieldSelectableCell.spec.js +0 -49
- package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyField.spec.js.snap +0 -279
- package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldCell.spec.js.snap +0 -67
- package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldColumn.spec.js.snap +0 -42
- package/src/components/widgets/CopyField/__tests__/__snapshots__/CopyFieldSelectableCell.spec.js.snap +0 -60
- package/src/hooks/useHierarchies.js +0 -112
- package/src/selectors/subscopedTemplates.js +0 -16
- package/src/templates/components/TemplatesLoader.js +0 -24
- package/src/templates/components/__tests__/TemplatesLoader.spec.js +0 -29
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { intl } from "@truedat/test/intl-stub";
|
|
1
|
+
import userEvent from "@testing-library/user-event";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
4
3
|
import { PairListField } from "../PairListField";
|
|
5
4
|
|
|
6
|
-
// workaround for enzyme issue with React.useContext
|
|
7
|
-
// see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
|
|
8
|
-
jest.spyOn(React, "useContext").mockImplementation(() => intl);
|
|
9
|
-
|
|
10
5
|
describe("<PairListField />", () => {
|
|
11
6
|
const label = "label";
|
|
12
7
|
const name = "name";
|
|
@@ -15,104 +10,119 @@ describe("<PairListField />", () => {
|
|
|
15
10
|
const onChange = jest.fn();
|
|
16
11
|
const props = { field: { label, name, cardinality, value }, onChange };
|
|
17
12
|
|
|
18
|
-
it("matches the latest snapshot", () => {
|
|
19
|
-
const
|
|
20
|
-
|
|
13
|
+
it("matches the latest snapshot", async () => {
|
|
14
|
+
const rendered = render(<PairListField {...props} />);
|
|
15
|
+
await waitForLoad(rendered);
|
|
16
|
+
expect(rendered.container).toMatchSnapshot();
|
|
21
17
|
});
|
|
22
18
|
|
|
23
|
-
it("generates correct onChange value format when changing", () => {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
19
|
+
it("generates correct onChange value format when changing", async () => {
|
|
20
|
+
const user = userEvent.setup({ delay: null });
|
|
21
|
+
const rendered = render(<PairListField {...props} />);
|
|
22
|
+
await waitForLoad(rendered);
|
|
23
|
+
|
|
24
|
+
const input = rendered.container.querySelector('input[name="url_name"]');
|
|
25
|
+
|
|
26
|
+
await user.type(input, "1");
|
|
27
|
+
await user.tab();
|
|
28
|
+
|
|
29
|
+
expect(onChange).toHaveBeenCalledWith(expect.anything(), {
|
|
32
30
|
name: "name",
|
|
33
|
-
value: [{ url_name: "
|
|
31
|
+
value: [{ url_name: "Foo1", url_value: "Bar" }],
|
|
34
32
|
});
|
|
35
33
|
});
|
|
36
34
|
|
|
37
|
-
it("generates row when add button is clicked", () => {
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
it("generates row when add button is clicked", async () => {
|
|
36
|
+
const user = userEvent.setup({ delay: null });
|
|
37
|
+
const rendered = render(<PairListField {...props} />);
|
|
38
|
+
await waitForLoad(rendered);
|
|
39
|
+
|
|
40
|
+
const addButton = rendered.container.querySelector(".add.icon");
|
|
41
|
+
await user.click(addButton);
|
|
42
|
+
|
|
43
|
+
expect(onChange).toHaveBeenCalledWith(expect.anything(), {
|
|
45
44
|
name: "name",
|
|
46
45
|
value: [
|
|
47
46
|
{ url_name: "Foo", url_value: "Bar" },
|
|
48
|
-
{ url_name: "", url_value: "" }
|
|
49
|
-
]
|
|
47
|
+
{ url_name: "", url_value: "" },
|
|
48
|
+
],
|
|
50
49
|
});
|
|
51
50
|
});
|
|
52
51
|
|
|
53
|
-
it("modifies n row onChange", () => {
|
|
52
|
+
it("modifies n row onChange", async () => {
|
|
53
|
+
const user = userEvent.setup({ delay: null });
|
|
54
54
|
onChange.mockClear();
|
|
55
55
|
const value = [
|
|
56
56
|
{ url_name: "Foo", url_value: "Bar" },
|
|
57
|
-
{ url_name: "
|
|
57
|
+
{ url_name: "", url_value: "" },
|
|
58
58
|
];
|
|
59
59
|
const field = { label, name, cardinality, value };
|
|
60
|
-
|
|
61
|
-
const
|
|
60
|
+
|
|
61
|
+
const rendered = render(
|
|
62
62
|
<PairListField
|
|
63
63
|
{...{
|
|
64
64
|
...props,
|
|
65
|
-
field
|
|
65
|
+
field,
|
|
66
66
|
}}
|
|
67
67
|
/>
|
|
68
68
|
);
|
|
69
|
+
await waitForLoad(rendered);
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
const inputs = rendered.container.querySelectorAll(
|
|
72
|
+
'input[name="url_name"]'
|
|
73
|
+
);
|
|
74
|
+
const secondInput = inputs[1];
|
|
75
|
+
await user.type(secondInput, "1");
|
|
76
|
+
await user.tab();
|
|
74
77
|
|
|
75
|
-
expect(onChange).
|
|
78
|
+
expect(onChange).toHaveBeenCalledWith(expect.anything(), {
|
|
76
79
|
name: "name",
|
|
77
80
|
value: [
|
|
78
81
|
{ url_name: "Foo", url_value: "Bar" },
|
|
79
|
-
{ url_name: "
|
|
80
|
-
]
|
|
82
|
+
{ url_name: "1", url_value: "" },
|
|
83
|
+
],
|
|
81
84
|
});
|
|
82
85
|
});
|
|
83
86
|
|
|
84
|
-
it("deletes row when delete button is clicked", () => {
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
it("deletes row when delete button is clicked", async () => {
|
|
88
|
+
const user = userEvent.setup({ delay: null });
|
|
89
|
+
const rendered = render(<PairListField {...props} />);
|
|
90
|
+
await waitForLoad(rendered);
|
|
91
|
+
|
|
92
|
+
const deleteButton = rendered.container.querySelector(".minus.icon");
|
|
93
|
+
await user.click(deleteButton);
|
|
94
|
+
|
|
95
|
+
expect(onChange).toHaveBeenCalledWith(expect.anything(), {
|
|
96
|
+
name: "name",
|
|
97
|
+
value: [],
|
|
98
|
+
});
|
|
89
99
|
});
|
|
90
100
|
|
|
91
|
-
it("deletes n row when delete button is clicked", () => {
|
|
101
|
+
it("deletes n row when delete button is clicked", async () => {
|
|
102
|
+
const user = userEvent.setup({ delay: null });
|
|
92
103
|
onChange.mockClear();
|
|
93
|
-
const event = { preventDefault() {} };
|
|
94
104
|
const value = [
|
|
95
105
|
{ url_name: "Foo", url_value: "Bar" },
|
|
96
|
-
{ url_name: "Baz", url_value: "" }
|
|
106
|
+
{ url_name: "Baz", url_value: "" },
|
|
97
107
|
];
|
|
98
108
|
const field = { label, name, cardinality, value };
|
|
99
|
-
|
|
109
|
+
|
|
110
|
+
const rendered = render(
|
|
100
111
|
<PairListField
|
|
101
112
|
{...{
|
|
102
113
|
...props,
|
|
103
|
-
field
|
|
114
|
+
field,
|
|
104
115
|
}}
|
|
105
116
|
/>
|
|
106
117
|
);
|
|
118
|
+
await waitForLoad(rendered);
|
|
119
|
+
const deleteButtons = rendered.container.querySelectorAll(".minus.icon");
|
|
120
|
+
const secondDeleteButton = deleteButtons[1];
|
|
121
|
+
await user.click(secondDeleteButton);
|
|
107
122
|
|
|
108
|
-
|
|
109
|
-
.find({ icon: "minus" })
|
|
110
|
-
.last()
|
|
111
|
-
.prop("onClick")(event);
|
|
112
|
-
|
|
113
|
-
expect(onChange).toBeCalledWith(event, {
|
|
123
|
+
expect(onChange).toHaveBeenCalledWith(expect.anything(), {
|
|
114
124
|
name: "name",
|
|
115
|
-
value: [{ url_name: "Foo", url_value: "Bar" }]
|
|
125
|
+
value: [{ url_name: "Foo", url_value: "Bar" }],
|
|
116
126
|
});
|
|
117
127
|
});
|
|
118
128
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { shallowWithIntl } from "@truedat/test/intl-stub";
|
|
1
|
+
import { render } from "@truedat/test/render";
|
|
3
2
|
import { PasswordField } from "../PasswordField";
|
|
4
3
|
|
|
5
4
|
describe("<PasswordField />", () => {
|
|
@@ -11,7 +10,7 @@ describe("<PasswordField />", () => {
|
|
|
11
10
|
const props = { field: { label, name, cardinality, value }, onChange };
|
|
12
11
|
|
|
13
12
|
it("matches the latest snapshot", () => {
|
|
14
|
-
const
|
|
15
|
-
expect(
|
|
13
|
+
const { container } = render(<PasswordField {...props} />);
|
|
14
|
+
expect(container).toMatchSnapshot();
|
|
16
15
|
});
|
|
17
16
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { shallow } from "enzyme";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
2
|
import { RadioField } from "../RadioField";
|
|
4
3
|
|
|
5
4
|
describe("<RadioField />", () => {
|
|
@@ -14,8 +13,9 @@ describe("<RadioField />", () => {
|
|
|
14
13
|
onChange,
|
|
15
14
|
};
|
|
16
15
|
|
|
17
|
-
it("matches the latest snapshot", () => {
|
|
18
|
-
const
|
|
19
|
-
|
|
16
|
+
it("matches the latest snapshot", async () => {
|
|
17
|
+
const rendered = render(<RadioField {...props} />);
|
|
18
|
+
await waitForLoad(rendered);
|
|
19
|
+
expect(rendered.container).toMatchSnapshot();
|
|
20
20
|
});
|
|
21
21
|
});
|
|
@@ -1,69 +1,68 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { shallow } from "enzyme";
|
|
4
|
-
import { intl } from "@truedat/test/intl-stub";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
5
2
|
import { StandardDropdown } from "../StandardDropdown";
|
|
6
3
|
|
|
7
|
-
// workaround for enzyme issue with React.useContext
|
|
8
|
-
// see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
|
|
9
|
-
jest.spyOn(React, "useContext").mockImplementation(() => intl);
|
|
10
|
-
|
|
11
4
|
describe("<StandardDropdown />", () => {
|
|
12
5
|
const label = "label";
|
|
13
6
|
const name = "name";
|
|
14
7
|
const cardinality = "1";
|
|
15
8
|
const scope = "bg";
|
|
16
9
|
const value = "Foo";
|
|
17
|
-
const options =
|
|
10
|
+
const options = [
|
|
11
|
+
{ text: "Foo", value: "Foo" },
|
|
12
|
+
{ text: "Bar", value: "Bar" },
|
|
13
|
+
];
|
|
18
14
|
const onChange = jest.fn();
|
|
19
|
-
const fieldData = {
|
|
20
|
-
label,
|
|
21
|
-
name,
|
|
22
|
-
cardinality,
|
|
23
|
-
value,
|
|
24
|
-
};
|
|
25
15
|
const props = {
|
|
26
|
-
field:
|
|
16
|
+
field: {
|
|
17
|
+
label,
|
|
18
|
+
name,
|
|
19
|
+
cardinality,
|
|
20
|
+
value,
|
|
21
|
+
},
|
|
27
22
|
options,
|
|
28
23
|
onChange,
|
|
29
24
|
scope,
|
|
30
25
|
};
|
|
31
26
|
|
|
32
|
-
it("matches the latest snapshot", () => {
|
|
33
|
-
const
|
|
34
|
-
|
|
27
|
+
it("matches the latest snapshot", async () => {
|
|
28
|
+
const rendered = render(<StandardDropdown {...props} />);
|
|
29
|
+
await waitForLoad(rendered);
|
|
30
|
+
expect(rendered.container).toMatchSnapshot();
|
|
35
31
|
});
|
|
36
32
|
|
|
37
|
-
it("gives proper dropdown props depending on cardinality and value", () => {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
_.prop("value")(fieldData)
|
|
41
|
-
);
|
|
42
|
-
expect(wrapper.find("FormDropdown").prop("multiple")).toBeFalsy();
|
|
43
|
-
expect(wrapper.find("FormDropdown").prop("options")).toEqual([
|
|
44
|
-
{ key: 0, text: "selector.no.selection", value: null },
|
|
45
|
-
{ key: 1, text: "Foo", value: "Foo" },
|
|
46
|
-
{ key: 2, text: "Bar", value: "Bar" },
|
|
47
|
-
]);
|
|
33
|
+
it("gives proper dropdown props depending on cardinality and value", async () => {
|
|
34
|
+
const rendered = render(<StandardDropdown {...props} />);
|
|
35
|
+
await waitForLoad(rendered);
|
|
48
36
|
|
|
49
|
-
|
|
50
|
-
|
|
37
|
+
// Test single selection
|
|
38
|
+
expect(rendered.getByText("Bar")).toBeInTheDocument();
|
|
51
39
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
40
|
+
// Test multiple selection
|
|
41
|
+
const multipleProps = {
|
|
42
|
+
...props,
|
|
43
|
+
field: {
|
|
44
|
+
...props.field,
|
|
45
|
+
cardinality: "*",
|
|
46
|
+
value: [{ id: 1 }],
|
|
47
|
+
},
|
|
48
|
+
};
|
|
58
49
|
|
|
59
|
-
const
|
|
60
|
-
|
|
50
|
+
const multipleRendered = render(<StandardDropdown {...multipleProps} />);
|
|
51
|
+
await waitForLoad(multipleRendered);
|
|
61
52
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
53
|
+
// Test without value
|
|
54
|
+
const withoutValueProps = {
|
|
55
|
+
...props,
|
|
56
|
+
field: {
|
|
57
|
+
...props.field,
|
|
58
|
+
cardinality: "*",
|
|
59
|
+
value: null,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const withoutValueRendered = render(
|
|
64
|
+
<StandardDropdown {...withoutValueProps} />
|
|
65
|
+
);
|
|
66
|
+
await waitForLoad(withoutValueRendered);
|
|
68
67
|
});
|
|
69
68
|
});
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { intl } from "@truedat/test/intl-stub";
|
|
1
|
+
import userEvent from "@testing-library/user-event";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
4
3
|
import { StringField } from "../StringField";
|
|
5
4
|
|
|
6
|
-
// workaround for enzyme issue with React.useContext
|
|
7
|
-
// see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
|
|
8
|
-
jest.spyOn(React, "useContext").mockImplementation(() => intl);
|
|
9
|
-
|
|
10
5
|
describe("<StringField />", () => {
|
|
11
6
|
const label = "label";
|
|
12
7
|
const name = "name";
|
|
@@ -15,9 +10,10 @@ describe("<StringField />", () => {
|
|
|
15
10
|
const onChange = jest.fn();
|
|
16
11
|
const props = { field: { label, name, cardinality, value }, onChange };
|
|
17
12
|
|
|
18
|
-
it("matches the latest snapshot", () => {
|
|
19
|
-
const
|
|
20
|
-
|
|
13
|
+
it("matches the latest snapshot", async () => {
|
|
14
|
+
const rendered = render(<StringField {...props} />);
|
|
15
|
+
await waitForLoad(rendered);
|
|
16
|
+
expect(rendered.container).toMatchSnapshot();
|
|
21
17
|
});
|
|
22
18
|
});
|
|
23
19
|
|
|
@@ -29,8 +25,9 @@ describe("<StringField /> Multiple", () => {
|
|
|
29
25
|
const onChange = jest.fn();
|
|
30
26
|
const props = { field: { label, name, cardinality, value }, onChange };
|
|
31
27
|
|
|
32
|
-
it("matches the latest snapshot multiple", () => {
|
|
33
|
-
const
|
|
34
|
-
|
|
28
|
+
it("matches the latest snapshot multiple", async () => {
|
|
29
|
+
const rendered = render(<StringField {...props} />);
|
|
30
|
+
await waitForLoad(rendered);
|
|
31
|
+
expect(rendered.container).toMatchSnapshot();
|
|
35
32
|
});
|
|
36
33
|
});
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { shallow } from "enzyme";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
2
|
import { SystemPreview } from "../SystemPreview";
|
|
4
3
|
|
|
5
|
-
// workaround for enzyme issue with React.useContext
|
|
6
|
-
// see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
|
|
7
|
-
|
|
8
4
|
describe("<SystemPreview />", () => {
|
|
9
|
-
const props = { value: { id: 1, external_id: "external_id" } };
|
|
5
|
+
const props = { value: { id: "1", external_id: "external_id" } };
|
|
10
6
|
|
|
11
|
-
it("matches the latest snapshot when value is object", () => {
|
|
12
|
-
const
|
|
13
|
-
|
|
7
|
+
it("matches the latest snapshot when value is object", async () => {
|
|
8
|
+
const rendered = render(<SystemPreview {...props} />);
|
|
9
|
+
await waitForLoad(rendered);
|
|
10
|
+
expect(rendered.container).toMatchSnapshot();
|
|
14
11
|
});
|
|
15
12
|
|
|
16
|
-
it("matches the latest snapshot when value is array", () => {
|
|
13
|
+
it("matches the latest snapshot when value is array", async () => {
|
|
17
14
|
const props = {
|
|
18
15
|
value: [
|
|
19
|
-
{ id: 1, external_id: "external_id", name: "name" },
|
|
20
|
-
{ id: 2, external_id: "external_id1", name: "name1" }
|
|
21
|
-
]
|
|
16
|
+
{ id: "1", external_id: "external_id", name: "name" },
|
|
17
|
+
{ id: "2", external_id: "external_id1", name: "name1" },
|
|
18
|
+
],
|
|
22
19
|
};
|
|
23
|
-
const
|
|
24
|
-
|
|
20
|
+
const rendered = render(<SystemPreview {...props} />);
|
|
21
|
+
await waitForLoad(rendered);
|
|
22
|
+
expect(rendered.container).toMatchSnapshot();
|
|
25
23
|
});
|
|
26
24
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import userEvent from "@testing-library/user-event";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
3
|
import { TableField } from "../TableField";
|
|
4
4
|
|
|
5
5
|
describe("<TableField />", () => {
|
|
@@ -7,53 +7,53 @@ describe("<TableField />", () => {
|
|
|
7
7
|
const cardinality = "+";
|
|
8
8
|
const value = [
|
|
9
9
|
{ field1: "Foo", field2: "Bar" },
|
|
10
|
-
{ field1: "Fee", field2: "Bor" }
|
|
10
|
+
{ field1: "Fee", field2: "Bor" },
|
|
11
11
|
];
|
|
12
12
|
const values = {
|
|
13
13
|
table_columns: [
|
|
14
14
|
{ mandatory: true, name: "field1" },
|
|
15
|
-
{ mandatory: false, name: "field2" }
|
|
16
|
-
]
|
|
15
|
+
{ mandatory: false, name: "field2" },
|
|
16
|
+
],
|
|
17
17
|
};
|
|
18
|
-
const
|
|
19
|
-
const props = { field: { name, cardinality, value, values }, onChange };
|
|
18
|
+
const props = { field: { name, cardinality, value, values } };
|
|
20
19
|
|
|
21
|
-
it("matches the latest snapshot", () => {
|
|
22
|
-
const
|
|
23
|
-
|
|
20
|
+
it("matches the latest snapshot", async () => {
|
|
21
|
+
const rendered = render(<TableField {...props} />);
|
|
22
|
+
await waitForLoad(rendered);
|
|
23
|
+
expect(rendered.container).toMatchSnapshot();
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
it("generates correct onChange value format when changing", () => {
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
.find({ name: "field1" })
|
|
35
|
-
.at(0)
|
|
36
|
-
.simulate("change", null, data);
|
|
37
|
-
expect(onChange).toBeCalledWith(null, {
|
|
26
|
+
it("generates correct onChange value format when changing", async () => {
|
|
27
|
+
const user = userEvent.setup({ delay: null });
|
|
28
|
+
const onChange = jest.fn();
|
|
29
|
+
const rendered = render(<TableField {...props} onChange={onChange} />);
|
|
30
|
+
await waitForLoad(rendered);
|
|
31
|
+
|
|
32
|
+
await user.type(rendered.queryAllByRole("textbox")[0], "1");
|
|
33
|
+
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({}), {
|
|
38
34
|
name: "name",
|
|
39
35
|
value: [
|
|
40
|
-
{ field1: "
|
|
41
|
-
{ field1: "Fee", field2: "Bor" }
|
|
42
|
-
]
|
|
36
|
+
{ field1: "Foo1", field2: "Bar" },
|
|
37
|
+
{ field1: "Fee", field2: "Bor" },
|
|
38
|
+
],
|
|
43
39
|
});
|
|
44
40
|
});
|
|
45
41
|
|
|
46
|
-
it("generates row when add buttom is pressed", () => {
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
it("generates row when add buttom is pressed", async () => {
|
|
43
|
+
const user = userEvent.setup({ delay: null });
|
|
44
|
+
const onChange = jest.fn();
|
|
45
|
+
const rendered = render(<TableField {...props} onChange={onChange} />);
|
|
46
|
+
await waitForLoad(rendered);
|
|
47
|
+
|
|
48
|
+
const addButton = rendered.getByTestId("add-button");
|
|
49
|
+
await user.click(addButton);
|
|
50
|
+
expect(onChange).toHaveBeenCalledWith(expect.objectContaining({}), {
|
|
51
51
|
name: "name",
|
|
52
52
|
value: [
|
|
53
53
|
{ field1: "Foo", field2: "Bar" },
|
|
54
54
|
{ field1: "Fee", field2: "Bor" },
|
|
55
|
-
{ field1: "", field2: "" }
|
|
56
|
-
]
|
|
55
|
+
{ field1: "", field2: "" },
|
|
56
|
+
],
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
59
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { shallow } from "enzyme";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
2
|
import { TextField } from "../TextField";
|
|
4
3
|
|
|
5
4
|
describe("<TextField />", () => {
|
|
@@ -10,8 +9,9 @@ describe("<TextField />", () => {
|
|
|
10
9
|
const onChange = jest.fn();
|
|
11
10
|
const props = { field: { label, name, cardinality, value }, onChange };
|
|
12
11
|
|
|
13
|
-
it("matches the latest snapshot", () => {
|
|
14
|
-
const
|
|
15
|
-
|
|
12
|
+
it("matches the latest snapshot", async () => {
|
|
13
|
+
const rendered = render(<TextField {...props} />);
|
|
14
|
+
await waitForLoad(rendered);
|
|
15
|
+
expect(rendered.container).toMatchSnapshot();
|
|
16
16
|
});
|
|
17
17
|
});
|
|
@@ -1,36 +1,65 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<CheckboxField /> Multiple matches the latest snapshot for multiple 1`] = `
|
|
4
|
-
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="field"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
class="ui checkbox"
|
|
10
|
+
>
|
|
11
|
+
<input
|
|
12
|
+
class="hidden"
|
|
13
|
+
name="name"
|
|
14
|
+
readonly=""
|
|
15
|
+
tabindex="0"
|
|
16
|
+
type="checkbox"
|
|
17
|
+
value="foo"
|
|
18
|
+
/>
|
|
19
|
+
<label>
|
|
20
|
+
Foo
|
|
21
|
+
</label>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<div
|
|
25
|
+
class="field"
|
|
26
|
+
>
|
|
27
|
+
<div
|
|
28
|
+
class="ui checkbox"
|
|
29
|
+
>
|
|
30
|
+
<input
|
|
31
|
+
class="hidden"
|
|
32
|
+
name="name"
|
|
33
|
+
readonly=""
|
|
34
|
+
tabindex="0"
|
|
35
|
+
type="checkbox"
|
|
36
|
+
value="bar"
|
|
37
|
+
/>
|
|
38
|
+
<label>
|
|
39
|
+
Bar
|
|
40
|
+
</label>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
26
44
|
`;
|
|
27
45
|
|
|
28
46
|
exports[`<CheckboxField /> matches the latest snapshot 1`] = `
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
47
|
+
<div>
|
|
48
|
+
<div
|
|
49
|
+
class="field"
|
|
50
|
+
>
|
|
51
|
+
<div
|
|
52
|
+
class="ui fitted checkbox"
|
|
53
|
+
>
|
|
54
|
+
<input
|
|
55
|
+
class="hidden"
|
|
56
|
+
name="name"
|
|
57
|
+
readonly=""
|
|
58
|
+
tabindex="0"
|
|
59
|
+
type="checkbox"
|
|
60
|
+
/>
|
|
61
|
+
<label />
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
36
65
|
`;
|