@truedat/df 7.5.7 → 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,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { TemplateFormActions } from "../TemplateFormActions";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
2
|
+
import TemplateFormActions from "../TemplateFormActions";
|
|
4
3
|
|
|
5
4
|
describe("<TemplateFormActions />", () => {
|
|
6
5
|
const onSave = jest.fn();
|
|
@@ -11,6 +10,7 @@ describe("<TemplateFormActions />", () => {
|
|
|
11
10
|
const templateSaving = false;
|
|
12
11
|
const templateDeleting = false;
|
|
13
12
|
const isInvalid = false;
|
|
13
|
+
|
|
14
14
|
const props = {
|
|
15
15
|
template,
|
|
16
16
|
templateSaving,
|
|
@@ -19,25 +19,29 @@ describe("<TemplateFormActions />", () => {
|
|
|
19
19
|
isInvalid,
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
it("matches the latest snapshot", () => {
|
|
23
|
-
const
|
|
24
|
-
|
|
22
|
+
it("matches the latest snapshot", async () => {
|
|
23
|
+
const rendered = render(<TemplateFormActions {...props} />);
|
|
24
|
+
await waitForLoad(rendered);
|
|
25
|
+
expect(rendered.container).toMatchSnapshot();
|
|
25
26
|
});
|
|
26
27
|
|
|
27
|
-
it("matches the latest snapshot (saving)", () => {
|
|
28
|
-
const
|
|
29
|
-
|
|
28
|
+
it("matches the latest snapshot (saving)", async () => {
|
|
29
|
+
const rendered = render(<TemplateFormActions {...props} templateSaving />);
|
|
30
|
+
await waitForLoad(rendered);
|
|
31
|
+
expect(rendered.container).toMatchSnapshot();
|
|
30
32
|
});
|
|
31
33
|
|
|
32
|
-
it("matches the latest snapshot (deleting)", () => {
|
|
33
|
-
const
|
|
34
|
+
it("matches the latest snapshot (deleting)", async () => {
|
|
35
|
+
const rendered = render(
|
|
34
36
|
<TemplateFormActions {...props} templateDeleting />
|
|
35
37
|
);
|
|
36
|
-
|
|
38
|
+
await waitForLoad(rendered);
|
|
39
|
+
expect(rendered.container).toMatchSnapshot();
|
|
37
40
|
});
|
|
38
41
|
|
|
39
|
-
it("matches the latest snapshot (invalid)", () => {
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
+
it("matches the latest snapshot (invalid)", async () => {
|
|
43
|
+
const rendered = render(<TemplateFormActions {...props} isInvalid />);
|
|
44
|
+
await waitForLoad(rendered);
|
|
45
|
+
expect(rendered.container).toMatchSnapshot();
|
|
42
46
|
});
|
|
43
47
|
});
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { ValuesField } from "../ValuesField";
|
|
5
|
-
|
|
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);
|
|
1
|
+
import userEvent from "@testing-library/user-event";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
|
+
import ValuesField from "../ValuesField";
|
|
9
4
|
|
|
10
5
|
describe("<ValuesField /> noPrefix", () => {
|
|
11
|
-
it("matches the latest snapshot for null values", () => {
|
|
6
|
+
it("matches the latest snapshot for null values", async () => {
|
|
12
7
|
const values = null;
|
|
13
8
|
const name = "name.values";
|
|
14
9
|
const onChange = jest.fn();
|
|
@@ -19,11 +14,12 @@ describe("<ValuesField /> noPrefix", () => {
|
|
|
19
14
|
onSelectionChange,
|
|
20
15
|
onChange,
|
|
21
16
|
};
|
|
22
|
-
const
|
|
23
|
-
|
|
17
|
+
const rendered = render(<ValuesField {...props} />);
|
|
18
|
+
await waitForLoad(rendered);
|
|
19
|
+
expect(rendered.container).toMatchSnapshot();
|
|
24
20
|
});
|
|
25
21
|
|
|
26
|
-
it("test values dropdown", () => {
|
|
22
|
+
it("test values dropdown", async () => {
|
|
27
23
|
const values = null;
|
|
28
24
|
const name = "name.values";
|
|
29
25
|
const onSelectionChange = jest.fn();
|
|
@@ -42,14 +38,22 @@ describe("<ValuesField /> noPrefix", () => {
|
|
|
42
38
|
{ id: "template.field.values.switch", value: "switch" },
|
|
43
39
|
],
|
|
44
40
|
};
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
const rendered = render(<ValuesField {...props} />);
|
|
42
|
+
await waitForLoad(rendered);
|
|
43
|
+
|
|
44
|
+
const user = userEvent.setup({ delay: null });
|
|
45
|
+
await user.click(
|
|
46
|
+
await rendered.findByRole("option", {
|
|
47
|
+
name: "template.field.values.switch",
|
|
48
|
+
})
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
expect(onSelectionChange).toHaveBeenCalled();
|
|
48
52
|
});
|
|
49
53
|
});
|
|
50
54
|
|
|
51
55
|
describe("<ValuesField /> fixed", () => {
|
|
52
|
-
it("matches the latest snapshot for null values", () => {
|
|
56
|
+
it("matches the latest snapshot for null values", async () => {
|
|
53
57
|
const values = { fixed: ["Foo", "Bar"] };
|
|
54
58
|
const name = "name.values";
|
|
55
59
|
const onSelectionChange = jest.fn();
|
|
@@ -59,11 +63,12 @@ describe("<ValuesField /> fixed", () => {
|
|
|
59
63
|
onChange: jest.fn(),
|
|
60
64
|
onSelectionChange,
|
|
61
65
|
};
|
|
62
|
-
const
|
|
63
|
-
|
|
66
|
+
const rendered = render(<ValuesField {...props} />);
|
|
67
|
+
await waitForLoad(rendered);
|
|
68
|
+
expect(rendered.container).toMatchSnapshot();
|
|
64
69
|
});
|
|
65
70
|
|
|
66
|
-
it("test values dropdown changes to given value", () => {
|
|
71
|
+
it("test values dropdown changes to given value", async () => {
|
|
67
72
|
const values = { fixed: ["Foo", "Bar"] };
|
|
68
73
|
const onSelectionChange = jest.fn();
|
|
69
74
|
const props = {
|
|
@@ -80,20 +85,21 @@ describe("<ValuesField /> fixed", () => {
|
|
|
80
85
|
{ id: "template.field.values.switch", value: "switch" },
|
|
81
86
|
],
|
|
82
87
|
};
|
|
83
|
-
const
|
|
88
|
+
const rendered = render(<ValuesField {...props} />);
|
|
89
|
+
await waitForLoad(rendered);
|
|
84
90
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
const user = userEvent.setup({ delay: null });
|
|
92
|
+
const dropdown = rendered.container.querySelector(".dropdown");
|
|
93
|
+
await user.click(dropdown);
|
|
94
|
+
await user.click(await rendered.findByText(/fixed_tuple/i));
|
|
89
95
|
|
|
90
|
-
expect(onSelectionChange).
|
|
96
|
+
expect(onSelectionChange).toHaveBeenCalled();
|
|
91
97
|
});
|
|
92
98
|
|
|
93
|
-
it("renders subscribable checkbox", () => {
|
|
99
|
+
it("renders subscribable checkbox", async () => {
|
|
94
100
|
const values = { fixed: ["Foo", "Bar"] };
|
|
95
101
|
const onChange = jest.fn();
|
|
96
|
-
const subscribableField = "
|
|
102
|
+
const subscribableField = "subscribableField";
|
|
97
103
|
const props = {
|
|
98
104
|
field: { values, subscribable: false },
|
|
99
105
|
onChange,
|
|
@@ -108,24 +114,35 @@ describe("<ValuesField /> fixed", () => {
|
|
|
108
114
|
{ id: "template.field.values.switch", value: "switch" },
|
|
109
115
|
],
|
|
110
116
|
};
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
const rendered = render(<ValuesField {...props} />);
|
|
118
|
+
await waitForLoad(rendered);
|
|
119
|
+
|
|
120
|
+
const user = userEvent.setup({ delay: null });
|
|
121
|
+
const checkbox = rendered.container.querySelector(
|
|
122
|
+
`[name="${subscribableField}"]`
|
|
123
|
+
);
|
|
124
|
+
expect(checkbox).toBeInTheDocument();
|
|
125
|
+
await user.click(checkbox);
|
|
126
|
+
|
|
127
|
+
expect(onChange).toHaveBeenCalledWith(null, {
|
|
118
128
|
name: subscribableField,
|
|
119
129
|
value: true,
|
|
120
130
|
});
|
|
121
131
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
checked: true,
|
|
132
|
+
// Test with fixed_tuple keyType
|
|
133
|
+
const renderedWithFixedTuple = render({
|
|
134
|
+
...props,
|
|
135
|
+
keyType: "fixed_tuple",
|
|
127
136
|
});
|
|
128
|
-
|
|
137
|
+
await waitForLoad(renderedWithFixedTuple);
|
|
138
|
+
|
|
139
|
+
const checkboxFixedTuple = renderedWithFixedTuple.getByText(
|
|
140
|
+
"template.field.subscribable"
|
|
141
|
+
);
|
|
142
|
+
expect(checkboxFixedTuple).toBeInTheDocument();
|
|
143
|
+
await user.click(checkboxFixedTuple);
|
|
144
|
+
|
|
145
|
+
expect(onChange).toHaveBeenCalledWith(null, {
|
|
129
146
|
name: subscribableField,
|
|
130
147
|
value: true,
|
|
131
148
|
});
|
|
@@ -133,7 +150,7 @@ describe("<ValuesField /> fixed", () => {
|
|
|
133
150
|
});
|
|
134
151
|
|
|
135
152
|
describe("<ValuesField /> fixed_tuple", () => {
|
|
136
|
-
it("matches the latest snapshot for null values", () => {
|
|
153
|
+
it("matches the latest snapshot for null values", async () => {
|
|
137
154
|
const values = { fixed_tuple: [{ value: "Foo", text: "Bar" }] };
|
|
138
155
|
const name = "name.values";
|
|
139
156
|
const onChange = jest.fn();
|
|
@@ -145,13 +162,14 @@ describe("<ValuesField /> fixed_tuple", () => {
|
|
|
145
162
|
onSelectionChange,
|
|
146
163
|
keyType: "fixed_tuple",
|
|
147
164
|
};
|
|
148
|
-
const
|
|
149
|
-
|
|
165
|
+
const rendered = render(<ValuesField {...props} />);
|
|
166
|
+
await waitForLoad(rendered);
|
|
167
|
+
expect(rendered.container).toMatchSnapshot();
|
|
150
168
|
});
|
|
151
169
|
});
|
|
152
170
|
|
|
153
171
|
describe("<ValuesField /> switch", () => {
|
|
154
|
-
it("matches the latest snapshot for null values", () => {
|
|
172
|
+
it("matches the latest snapshot for null values", async () => {
|
|
155
173
|
const values = {
|
|
156
174
|
switch: {
|
|
157
175
|
on: "test",
|
|
@@ -170,13 +188,14 @@ describe("<ValuesField /> switch", () => {
|
|
|
170
188
|
onChange: jest.fn(),
|
|
171
189
|
onSelectionChange,
|
|
172
190
|
};
|
|
173
|
-
const
|
|
174
|
-
|
|
191
|
+
const rendered = render(<ValuesField {...props} />);
|
|
192
|
+
await waitForLoad(rendered);
|
|
193
|
+
expect(rendered.container).toMatchSnapshot();
|
|
175
194
|
});
|
|
176
195
|
});
|
|
177
196
|
|
|
178
197
|
describe("<ValuesField /> role_users", () => {
|
|
179
|
-
it("matches the latest snapshot for not null values", () => {
|
|
198
|
+
it("matches the latest snapshot for not null values", async () => {
|
|
180
199
|
const values = { role_users: "test_role" };
|
|
181
200
|
const name = "name.values";
|
|
182
201
|
const onSelectionChange = jest.fn();
|
|
@@ -186,11 +205,12 @@ describe("<ValuesField /> role_users", () => {
|
|
|
186
205
|
onChange: jest.fn(),
|
|
187
206
|
onSelectionChange,
|
|
188
207
|
};
|
|
189
|
-
const
|
|
190
|
-
|
|
208
|
+
const rendered = render(<ValuesField {...props} />);
|
|
209
|
+
await waitForLoad(rendered);
|
|
210
|
+
expect(rendered.container).toMatchSnapshot();
|
|
191
211
|
});
|
|
192
212
|
|
|
193
|
-
it("test role input", () => {
|
|
213
|
+
it("test role input", async () => {
|
|
194
214
|
const values = { processed_users: ["user1"], role_users: "test_role" };
|
|
195
215
|
const name = "name.values";
|
|
196
216
|
const onSelectionChange = jest.fn();
|
|
@@ -203,23 +223,24 @@ describe("<ValuesField /> role_users", () => {
|
|
|
203
223
|
widget: "dropdown",
|
|
204
224
|
fieldType: "user",
|
|
205
225
|
keyType: "role_users",
|
|
226
|
+
fieldNamePrefix: "foo",
|
|
206
227
|
};
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
expect(onChange).
|
|
228
|
+
const rendered = render(<ValuesField {...props} />);
|
|
229
|
+
await waitForLoad(rendered);
|
|
230
|
+
|
|
231
|
+
const user = userEvent.setup({ delay: null });
|
|
232
|
+
|
|
233
|
+
await user.type(rendered.getByRole("textbox"), "1");
|
|
234
|
+
|
|
235
|
+
expect(onChange).toHaveBeenCalledWith(null, {
|
|
215
236
|
name: "name.values",
|
|
216
|
-
value: { role_users: "
|
|
237
|
+
value: { role_users: "test_role1" },
|
|
217
238
|
});
|
|
218
239
|
});
|
|
219
240
|
});
|
|
220
241
|
|
|
221
242
|
describe("<ValuesField /> table_columns", () => {
|
|
222
|
-
it("matches the latest snapshot", () => {
|
|
243
|
+
it("matches the latest snapshot", async () => {
|
|
223
244
|
const values = {
|
|
224
245
|
table_columns: [
|
|
225
246
|
{ mandatory: true, name: "field1" },
|
|
@@ -230,7 +251,8 @@ describe("<ValuesField /> table_columns", () => {
|
|
|
230
251
|
field: { values },
|
|
231
252
|
onChange: jest.fn(),
|
|
232
253
|
};
|
|
233
|
-
const
|
|
234
|
-
|
|
254
|
+
const rendered = render(<ValuesField {...props} />);
|
|
255
|
+
await waitForLoad(rendered);
|
|
256
|
+
expect(rendered.container).toMatchSnapshot();
|
|
235
257
|
});
|
|
236
258
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import userEvent from "@testing-library/user-event";
|
|
2
|
+
import { within } from "@testing-library/react";
|
|
3
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
4
|
+
import ValuesListForm from "../ValuesListForm";
|
|
4
5
|
|
|
5
6
|
describe("<ValuesListForm /> fixed", () => {
|
|
6
7
|
const values = ["Foo", "Bar"];
|
|
@@ -9,189 +10,152 @@ describe("<ValuesListForm /> fixed", () => {
|
|
|
9
10
|
const props = {
|
|
10
11
|
values,
|
|
11
12
|
type,
|
|
12
|
-
onChange
|
|
13
|
+
onChange,
|
|
13
14
|
};
|
|
14
|
-
it("matches the latest snapshot for fixed", () => {
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
it("matches the latest snapshot for fixed", async () => {
|
|
16
|
+
const rendered = render(<ValuesListForm {...props} />);
|
|
17
|
+
await waitForLoad(rendered);
|
|
18
|
+
expect(rendered.container).toMatchSnapshot();
|
|
17
19
|
});
|
|
18
20
|
|
|
19
|
-
it("test list simple actions", () => {
|
|
20
|
-
const
|
|
21
|
+
it("test list simple actions", async () => {
|
|
22
|
+
const rendered = render(<ValuesListForm {...props} />);
|
|
23
|
+
await waitForLoad(rendered);
|
|
24
|
+
|
|
25
|
+
const user = userEvent.setup({ delay: null });
|
|
26
|
+
const upButton =
|
|
27
|
+
rendered.container.querySelectorAll(".chevron.circle.up")[1];
|
|
28
|
+
await user.click(upButton);
|
|
29
|
+
expect(onChange).toHaveBeenCalledWith(["Bar", "Foo"]);
|
|
30
|
+
|
|
31
|
+
const downButton = rendered.container.querySelectorAll(
|
|
32
|
+
".chevron.circle.down"
|
|
33
|
+
)[0];
|
|
34
|
+
await user.click(downButton);
|
|
35
|
+
expect(onChange).toHaveBeenCalledWith(["Foo", "Bar"]);
|
|
36
|
+
|
|
37
|
+
const removeButton = rendered.container.querySelectorAll(
|
|
38
|
+
".remove.circle.icon"
|
|
39
|
+
)[0];
|
|
40
|
+
await user.click(removeButton);
|
|
41
|
+
expect(onChange).toHaveBeenCalledWith(["Bar"]);
|
|
42
|
+
});
|
|
21
43
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
44
|
+
it("test input for fixed", async () => {
|
|
45
|
+
const customProps = { ...props, onChange: jest.fn() };
|
|
46
|
+
const rendered = render(<ValuesListForm {...customProps} />);
|
|
47
|
+
await waitForLoad(rendered);
|
|
25
48
|
|
|
26
|
-
|
|
27
|
-
|
|
49
|
+
const user = userEvent.setup({ delay: null });
|
|
50
|
+
const input = rendered.container.querySelector("input[name='fixed_value']");
|
|
51
|
+
await user.type(input, "Test");
|
|
28
52
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
// Verify it changes the component value
|
|
54
|
+
expect(input.value).toBe("Test");
|
|
55
|
+
|
|
56
|
+
// Simulate Enter pressed
|
|
57
|
+
await user.type(input, "{enter}");
|
|
58
|
+
|
|
59
|
+
// Verify value is added and input is cleaned
|
|
60
|
+
expect(customProps.onChange).toHaveBeenCalledWith(["Bar", "Test"]);
|
|
33
61
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
wrapper.find("FormInput").simulate("change", null, {
|
|
39
|
-
name: "fixed_value",
|
|
40
|
-
value: "Test"
|
|
41
|
-
});
|
|
42
|
-
//Verify it changes de component value
|
|
43
|
-
expect(wrapper.find("FormInput").props().value).toBe("Test");
|
|
44
|
-
//Simulate Enter pressed
|
|
45
|
-
wrapper.find("FormInput").simulate("keyPress", { key: "Enter" });
|
|
46
|
-
|
|
47
|
-
//Verify value in added and input is cleaned
|
|
48
|
-
expect(onChange).toBeCalledWith(["Foo", "Test"]);
|
|
49
|
-
expect(wrapper.find("FormInput").props().value).toBe("");
|
|
50
|
-
|
|
51
|
-
//Write "Test" again
|
|
52
|
-
wrapper.find("FormInput").simulate("change", null, {
|
|
53
|
-
name: "fixed_value",
|
|
54
|
-
value: "Foo"
|
|
55
|
-
});
|
|
56
|
-
expect(wrapper.find("FormInput").props().error).toBe(true);
|
|
62
|
+
// Type existing value to test error state
|
|
63
|
+
await user.type(input, "Bar");
|
|
64
|
+
const errorInput = rendered.container.querySelector(".error input");
|
|
65
|
+
expect(errorInput).toBeInTheDocument();
|
|
57
66
|
});
|
|
58
67
|
});
|
|
59
68
|
|
|
60
69
|
describe("<ValuesListForm /> fixed_tuple", () => {
|
|
61
70
|
const values = [
|
|
62
71
|
{ value: "foo", text: "Foo" },
|
|
63
|
-
{ value: "bar", text: "Bar" }
|
|
72
|
+
{ value: "bar", text: "Bar" },
|
|
64
73
|
];
|
|
65
74
|
const type = "fixed_tuple";
|
|
66
75
|
const onChange = jest.fn();
|
|
67
76
|
const props = {
|
|
68
77
|
values,
|
|
69
78
|
type,
|
|
70
|
-
onChange
|
|
79
|
+
onChange,
|
|
71
80
|
};
|
|
72
|
-
it("matches the latest snapshot for fixed_tuple", () => {
|
|
73
|
-
const
|
|
74
|
-
|
|
81
|
+
it("matches the latest snapshot for fixed_tuple", async () => {
|
|
82
|
+
const rendered = render(<ValuesListForm {...props} />);
|
|
83
|
+
await waitForLoad(rendered);
|
|
84
|
+
expect(rendered.container).toMatchSnapshot();
|
|
75
85
|
});
|
|
76
86
|
|
|
77
|
-
it("test input for fixed_tuple", () => {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
).
|
|
102
|
-
expect(
|
|
103
|
-
wrapper
|
|
104
|
-
.find("FormInput")
|
|
105
|
-
.at(1)
|
|
106
|
-
.props().value
|
|
107
|
-
).toBe("TestText");
|
|
108
|
-
//Simulate Enter pressed
|
|
109
|
-
wrapper
|
|
110
|
-
.find("FormInput")
|
|
111
|
-
.at(1)
|
|
112
|
-
.simulate("keyPress", { key: "Enter" });
|
|
113
|
-
|
|
114
|
-
//Verify value in added and input is cleaned
|
|
115
|
-
expect(onChange).toBeCalledWith([
|
|
87
|
+
it("test input for fixed_tuple", async () => {
|
|
88
|
+
const rendered = render(<ValuesListForm {...props} />);
|
|
89
|
+
await waitForLoad(rendered);
|
|
90
|
+
|
|
91
|
+
const user = userEvent.setup({ delay: null });
|
|
92
|
+
// Write "Test" to inputs
|
|
93
|
+
const valueInput = rendered.container.querySelector(
|
|
94
|
+
"input[name='tuple_value']"
|
|
95
|
+
);
|
|
96
|
+
const textInput = rendered.container.querySelector(
|
|
97
|
+
"input[name='tuple_text']"
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
await user.type(valueInput, "test");
|
|
101
|
+
await user.type(textInput, "TestText");
|
|
102
|
+
|
|
103
|
+
// Verify it changes the component value
|
|
104
|
+
expect(valueInput.value).toBe("test");
|
|
105
|
+
expect(textInput.value).toBe("TestText");
|
|
106
|
+
|
|
107
|
+
// Simulate Enter pressed
|
|
108
|
+
await user.type(textInput, "{enter}");
|
|
109
|
+
|
|
110
|
+
// Verify value is added and inputs are cleaned
|
|
111
|
+
expect(onChange).toHaveBeenCalledWith([
|
|
116
112
|
{ text: "Foo", value: "foo" },
|
|
117
113
|
{ text: "Bar", value: "bar" },
|
|
118
|
-
{ text: "TestText", value: "test" }
|
|
114
|
+
{ text: "TestText", value: "test" },
|
|
119
115
|
]);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
).toBe("");
|
|
126
|
-
expect(
|
|
127
|
-
wrapper
|
|
128
|
-
.find("FormInput")
|
|
129
|
-
.at(1)
|
|
130
|
-
.props().value
|
|
131
|
-
).toBe("");
|
|
132
|
-
|
|
133
|
-
//Write "Test" again
|
|
134
|
-
wrapper
|
|
135
|
-
.find("FormInput")
|
|
136
|
-
.at(0)
|
|
137
|
-
.simulate("change", null, {
|
|
138
|
-
name: "tuple_value",
|
|
139
|
-
value: "foo"
|
|
140
|
-
});
|
|
141
|
-
expect(
|
|
142
|
-
wrapper
|
|
143
|
-
.find("FormInput")
|
|
144
|
-
.at(0)
|
|
145
|
-
.props().error
|
|
146
|
-
).toBe(true);
|
|
116
|
+
|
|
117
|
+
// Type existing value to test error state
|
|
118
|
+
await user.type(valueInput, "foo");
|
|
119
|
+
const errorInput = rendered.container.querySelector(".error input");
|
|
120
|
+
expect(errorInput).toBeInTheDocument();
|
|
147
121
|
});
|
|
148
122
|
});
|
|
149
123
|
|
|
150
124
|
describe("<ValuesListForm /> table_columns", () => {
|
|
151
125
|
const values = [
|
|
152
126
|
{ mandatory: true, name: "field1" },
|
|
153
|
-
{ mandatory: false, name: "field2" }
|
|
127
|
+
{ mandatory: false, name: "field2" },
|
|
154
128
|
];
|
|
155
129
|
const type = "table_columns";
|
|
156
130
|
const onChange = jest.fn();
|
|
157
131
|
const props = {
|
|
158
132
|
values,
|
|
159
133
|
type,
|
|
160
|
-
onChange
|
|
134
|
+
onChange,
|
|
161
135
|
};
|
|
162
|
-
it("matches the latest snapshot for table_columns", () => {
|
|
163
|
-
const
|
|
164
|
-
|
|
136
|
+
it("matches the latest snapshot for table_columns", async () => {
|
|
137
|
+
const rendered = render(<ValuesListForm {...props} />);
|
|
138
|
+
await waitForLoad(rendered);
|
|
139
|
+
expect(rendered.container).toMatchSnapshot();
|
|
165
140
|
});
|
|
166
141
|
|
|
167
|
-
it("test form for table_columns", () => {
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
.props().children[0]
|
|
182
|
-
).toBe("field2");
|
|
183
|
-
|
|
184
|
-
wrapper.find("FormInput").simulate("change", null, {
|
|
185
|
-
name: "column_name",
|
|
186
|
-
value: "este si"
|
|
187
|
-
});
|
|
188
|
-
expect(wrapper.find("FormInput").props().value).toBe("este si");
|
|
189
|
-
|
|
190
|
-
wrapper.find("FormInput").simulate("keyPress", { key: "Enter" });
|
|
191
|
-
expect(onChange).toBeCalledWith([
|
|
142
|
+
it("test form for table_columns", async () => {
|
|
143
|
+
const rendered = render(<ValuesListForm {...props} />);
|
|
144
|
+
await waitForLoad(rendered);
|
|
145
|
+
|
|
146
|
+
expect(rendered.getByText(/field1/i)).toBeInTheDocument();
|
|
147
|
+
expect(rendered.getByText(/field2/i)).toBeInTheDocument();
|
|
148
|
+
|
|
149
|
+
const user = userEvent.setup({ delay: null });
|
|
150
|
+
const input = rendered.container.querySelector("input[name='column_name']");
|
|
151
|
+
await user.type(input, "este si");
|
|
152
|
+
expect(input.value).toBe("este si");
|
|
153
|
+
|
|
154
|
+
await user.type(input, "{enter}");
|
|
155
|
+
expect(onChange).toHaveBeenCalledWith([
|
|
192
156
|
{ mandatory: true, name: "field1" },
|
|
193
157
|
{ mandatory: false, name: "field2" },
|
|
194
|
-
{ mandatory: false, name: "este si" }
|
|
158
|
+
{ mandatory: false, name: "este si" },
|
|
195
159
|
]);
|
|
196
160
|
});
|
|
197
161
|
});
|