box-ui-elements 23.4.0-beta.1 → 23.4.0-beta.3

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 (125) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/preview.js +1 -1
  3. package/dist/sidebar.js +1 -1
  4. package/es/common/types/metadata.js.flow +1 -0
  5. package/es/common/types/metadata.js.map +1 -1
  6. package/es/features/metadata-instance-editor/CascadePolicy.js +6 -2
  7. package/es/features/metadata-instance-editor/CascadePolicy.js.flow +19 -12
  8. package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
  9. package/es/features/metadata-instance-editor/Instance.js +31 -9
  10. package/es/features/metadata-instance-editor/Instance.js.flow +41 -9
  11. package/es/features/metadata-instance-editor/Instance.js.map +1 -1
  12. package/es/features/metadata-instance-editor/Instances.js +2 -0
  13. package/es/features/metadata-instance-editor/Instances.js.flow +3 -0
  14. package/es/features/metadata-instance-editor/Instances.js.map +1 -1
  15. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js +2 -0
  16. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.flow +3 -0
  17. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.map +1 -1
  18. package/es/features/metadata-instance-editor/TemplateDropdown.js +1 -1
  19. package/es/features/metadata-instance-editor/TemplateDropdown.js.flow +1 -1
  20. package/es/features/metadata-instance-editor/TemplateDropdown.js.map +1 -1
  21. package/es/features/metadata-instance-editor/TemplatedInstance.js +2 -0
  22. package/es/features/metadata-instance-editor/TemplatedInstance.js.flow +11 -1
  23. package/es/features/metadata-instance-editor/TemplatedInstance.js.map +1 -1
  24. package/es/features/metadata-instance-editor/constants.js +2 -1
  25. package/es/features/metadata-instance-editor/constants.js.flow +3 -1
  26. package/es/features/metadata-instance-editor/constants.js.map +1 -1
  27. package/es/features/metadata-instance-fields/DateMetadataField.js +30 -25
  28. package/es/features/metadata-instance-fields/DateMetadataField.js.flow +31 -27
  29. package/es/features/metadata-instance-fields/DateMetadataField.js.map +1 -1
  30. package/es/features/metadata-instance-fields/EnumMetadataField.js +8 -5
  31. package/es/features/metadata-instance-fields/EnumMetadataField.js.flow +8 -6
  32. package/es/features/metadata-instance-fields/EnumMetadataField.js.map +1 -1
  33. package/es/features/metadata-instance-fields/FloatMetadataField.js +2 -0
  34. package/es/features/metadata-instance-fields/FloatMetadataField.js.flow +3 -0
  35. package/es/features/metadata-instance-fields/FloatMetadataField.js.map +1 -1
  36. package/es/features/metadata-instance-fields/IntegerMetadataField.js +2 -0
  37. package/es/features/metadata-instance-fields/IntegerMetadataField.js.flow +3 -0
  38. package/es/features/metadata-instance-fields/IntegerMetadataField.js.map +1 -1
  39. package/es/features/metadata-instance-fields/MetadataField.js +7 -0
  40. package/es/features/metadata-instance-fields/MetadataField.js.flow +8 -0
  41. package/es/features/metadata-instance-fields/MetadataField.js.map +1 -1
  42. package/es/features/metadata-instance-fields/MultiSelectMetadataField.js +2 -0
  43. package/es/features/metadata-instance-fields/MultiSelectMetadataField.js.flow +3 -0
  44. package/es/features/metadata-instance-fields/MultiSelectMetadataField.js.map +1 -1
  45. package/es/features/metadata-instance-fields/TextMetadataField.js +8 -5
  46. package/es/features/metadata-instance-fields/TextMetadataField.js.flow +8 -6
  47. package/es/features/metadata-instance-fields/TextMetadataField.js.map +1 -1
  48. package/i18n/bn-IN.js +4 -4
  49. package/i18n/bn-IN.properties +4 -4
  50. package/i18n/da-DK.js +4 -4
  51. package/i18n/da-DK.properties +4 -4
  52. package/i18n/de-DE.js +4 -4
  53. package/i18n/de-DE.properties +4 -4
  54. package/i18n/es-419.js +3 -3
  55. package/i18n/es-419.properties +3 -3
  56. package/i18n/es-ES.js +3 -3
  57. package/i18n/es-ES.properties +3 -3
  58. package/i18n/fi-FI.js +3 -3
  59. package/i18n/fi-FI.properties +3 -3
  60. package/i18n/fr-CA.js +4 -4
  61. package/i18n/fr-CA.properties +4 -4
  62. package/i18n/fr-FR.js +4 -4
  63. package/i18n/fr-FR.properties +4 -4
  64. package/i18n/hi-IN.js +4 -4
  65. package/i18n/hi-IN.properties +4 -4
  66. package/i18n/it-IT.js +4 -4
  67. package/i18n/it-IT.properties +4 -4
  68. package/i18n/ko-KR.js +4 -4
  69. package/i18n/ko-KR.properties +4 -4
  70. package/i18n/nb-NO.js +4 -4
  71. package/i18n/nb-NO.properties +4 -4
  72. package/i18n/nl-NL.js +4 -4
  73. package/i18n/nl-NL.properties +4 -4
  74. package/i18n/pl-PL.js +4 -4
  75. package/i18n/pl-PL.properties +4 -4
  76. package/i18n/pt-BR.js +4 -4
  77. package/i18n/pt-BR.properties +4 -4
  78. package/i18n/ru-RU.js +4 -4
  79. package/i18n/ru-RU.properties +4 -4
  80. package/i18n/sv-SE.js +4 -4
  81. package/i18n/sv-SE.properties +4 -4
  82. package/i18n/tr-TR.js +4 -4
  83. package/i18n/tr-TR.properties +4 -4
  84. package/i18n/zh-CN.js +4 -4
  85. package/i18n/zh-CN.properties +4 -4
  86. package/i18n/zh-TW.js +4 -4
  87. package/i18n/zh-TW.properties +4 -4
  88. package/package.json +1 -1
  89. package/src/common/types/metadata.js +1 -0
  90. package/src/features/metadata-instance-editor/CascadePolicy.js +19 -12
  91. package/src/features/metadata-instance-editor/Instance.js +41 -9
  92. package/src/features/metadata-instance-editor/Instances.js +3 -0
  93. package/src/features/metadata-instance-editor/MetadataInstanceEditor.js +3 -0
  94. package/src/features/metadata-instance-editor/TemplateDropdown.js +1 -1
  95. package/src/features/metadata-instance-editor/TemplatedInstance.js +11 -1
  96. package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +92 -1
  97. package/src/features/metadata-instance-editor/__tests__/Instance.test.js +207 -2
  98. package/src/features/metadata-instance-editor/__tests__/Instances.test.js +92 -3
  99. package/src/features/metadata-instance-editor/__tests__/MetadataInstanceEditor.test.js +105 -0
  100. package/src/features/metadata-instance-editor/__tests__/TemplatedInstance.test.js +83 -1
  101. package/src/features/metadata-instance-editor/__tests__/__snapshots__/CascadePolicy.test.js.snap +1 -0
  102. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +16 -5
  103. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instances.test.js.snap +4 -2
  104. package/src/features/metadata-instance-editor/__tests__/__snapshots__/MetadataInstanceEditor.test.js.snap +1 -0
  105. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplatedInstance.test.js.snap +2 -2
  106. package/src/features/metadata-instance-editor/constants.js +3 -1
  107. package/src/features/metadata-instance-fields/DateMetadataField.js +31 -27
  108. package/src/features/metadata-instance-fields/EnumMetadataField.js +8 -6
  109. package/src/features/metadata-instance-fields/FloatMetadataField.js +3 -0
  110. package/src/features/metadata-instance-fields/IntegerMetadataField.js +3 -0
  111. package/src/features/metadata-instance-fields/MetadataField.js +8 -0
  112. package/src/features/metadata-instance-fields/MultiSelectMetadataField.js +3 -0
  113. package/src/features/metadata-instance-fields/TextMetadataField.js +8 -6
  114. package/src/features/metadata-instance-fields/__tests__/DateMetadataField.test.js +59 -8
  115. package/src/features/metadata-instance-fields/__tests__/EnumMetadataField.test.js +63 -18
  116. package/src/features/metadata-instance-fields/__tests__/FloatMetadataField.test.js +68 -4
  117. package/src/features/metadata-instance-fields/__tests__/IntegerMetadataField.test.js +90 -4
  118. package/src/features/metadata-instance-fields/__tests__/MultiSelectMetadataField.test.js +95 -7
  119. package/src/features/metadata-instance-fields/__tests__/TextMetadataField.test.js +107 -14
  120. package/src/features/metadata-instance-fields/__tests__/__snapshots__/DateMetadataField.test.js.snap +0 -18
  121. package/src/features/metadata-instance-fields/__tests__/__snapshots__/EnumMetadataField.test.js.snap +0 -84
  122. package/src/features/metadata-instance-fields/__tests__/__snapshots__/FloatMetadataField.test.js.snap +0 -8
  123. package/src/features/metadata-instance-fields/__tests__/__snapshots__/IntegerMetadataField.test.js.snap +0 -8
  124. package/src/features/metadata-instance-fields/__tests__/__snapshots__/MultiSelectMetadataField.test.js.snap +0 -58
  125. package/src/features/metadata-instance-fields/__tests__/__snapshots__/TextMetadataField.test.js.snap +0 -31
@@ -1,24 +1,117 @@
1
1
  import * as React from 'react';
2
+ import { render, screen } from '../../../test-utils/testing-library';
2
3
 
3
- import { TextMetadataFieldBase as TextMetadataField } from '../TextMetadataField';
4
+ import TextMetadataField from '../TextMetadataField';
4
5
 
5
- describe('features/metadata-instance-editor/fields/TextMetadataField', () => {
6
- const intl = {
7
- formatMessage: jest.fn(),
8
- };
6
+ describe('TextMetadataField', () => {
7
+ const getTextFieldBaseProps = (props = {}) => ({
8
+ dataKey: 'testKeyText',
9
+ displayName: 'Test Text Field',
10
+ onChange: jest.fn(),
11
+ onRemove: jest.fn(),
12
+ type: 'text',
13
+ dataValue: 'initial text value',
14
+ canEdit: true,
15
+ ...props,
16
+ });
17
+
18
+ test('should correctly render a text field with its value', () => {
19
+ render(
20
+ <TextMetadataField
21
+ {...getTextFieldBaseProps({
22
+ dataValue: 'specific text',
23
+ displayName: 'My Test Text',
24
+ })}
25
+ />,
26
+ );
27
+ const textInput = screen.getByRole('textbox', { name: 'My Test Text' });
28
+ expect(textInput).toBeInTheDocument();
29
+ expect(textInput).toHaveValue('specific text');
30
+ });
31
+
32
+ test('should correctly render a number field with its numeric value', () => {
33
+ render(
34
+ <TextMetadataField
35
+ {...getTextFieldBaseProps({
36
+ dataValue: 12345,
37
+ displayName: 'My Test Number',
38
+ type: 'number',
39
+ })}
40
+ />,
41
+ );
42
+ const numberInput = screen.getByRole('spinbutton', { name: 'My Test Number' });
43
+ expect(numberInput).toBeInTheDocument();
44
+ expect(numberInput).toHaveValue(12345);
45
+ });
46
+
47
+ test('should correctly render zero in a number field', () => {
48
+ render(
49
+ <TextMetadataField
50
+ {...getTextFieldBaseProps({
51
+ dataValue: 0,
52
+ displayName: 'My Zero Number',
53
+ type: 'number',
54
+ })}
55
+ />,
56
+ );
57
+ const zeroInput = screen.getByRole('spinbutton', { name: 'My Zero Number' });
58
+ expect(zeroInput).toBeInTheDocument();
59
+ expect(zeroInput).toHaveValue(0);
60
+ });
61
+
62
+ test('should display description when provided', () => {
63
+ const descriptionText = 'This is a text field description.';
64
+ render(
65
+ <TextMetadataField
66
+ {...getTextFieldBaseProps({
67
+ displayName: 'My Text With Desc',
68
+ description: descriptionText,
69
+ })}
70
+ />,
71
+ );
72
+ const textInput = screen.getByRole('textbox', { name: 'My Text With Desc This is a text field description.' });
73
+ expect(textInput).toBeInTheDocument();
74
+ expect(screen.getByText(descriptionText)).toBeInTheDocument();
75
+ });
9
76
 
10
- test('should correctly render a text field', () => {
11
- const wrapper = shallow(<TextMetadataField dataValue="value" intl={intl} />);
12
- expect(wrapper).toMatchSnapshot();
77
+ test('should render as disabled when isDisabled is true', () => {
78
+ const descriptionText = 'A description for the text field.';
79
+ render(
80
+ <TextMetadataField
81
+ {...getTextFieldBaseProps({
82
+ isDisabled: true,
83
+ description: descriptionText,
84
+ })}
85
+ />,
86
+ );
87
+ expect(
88
+ screen.getByRole('textbox', { name: 'Test Text Field A description for the text field.' }),
89
+ ).toBeDisabled();
13
90
  });
14
91
 
15
- test('should correctly render a number field', () => {
16
- const wrapper = shallow(<TextMetadataField dataValue="value" intl={intl} type="number" />);
17
- expect(wrapper).toMatchSnapshot();
92
+ test('should render as enabled when isDisabled is false', () => {
93
+ const descriptionText = 'A description for the text field.';
94
+ render(
95
+ <TextMetadataField
96
+ {...getTextFieldBaseProps({
97
+ isDisabled: false,
98
+ description: descriptionText,
99
+ })}
100
+ />,
101
+ );
102
+ expect(
103
+ screen.getByRole('textbox', { name: 'Test Text Field A description for the text field.' }),
104
+ ).not.toBeDisabled();
18
105
  });
19
106
 
20
- test('should correctly render a zero in a number field', () => {
21
- const wrapper = shallow(<TextMetadataField dataValue={0} intl={intl} type="number" />);
22
- expect(wrapper).toMatchSnapshot();
107
+ test('should render as enabled when isDisabled is not provided', () => {
108
+ const props = getTextFieldBaseProps({
109
+ description: 'A description for the text field.',
110
+ });
111
+ delete props.isDisabled;
112
+ render(<TextMetadataField {...props} />);
113
+ expect(
114
+ screen.getByRole('textbox', { name: 'Test Text Field A description for the text field.' }),
115
+ ).not.toBeDisabled();
23
116
  });
24
117
  });
@@ -1,18 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`features/metadata-instance-editor/fields/DateMetadataField should correctly render a date field 1`] = `
4
- <DatePicker
5
- className="bdl-DateMetadataField"
6
- dateFormat="utcISOString"
7
- displayFormat={
8
- {
9
- "day": "numeric",
10
- "month": "long",
11
- "year": "numeric",
12
- }
13
- }
14
- hideOptionalLabel={true}
15
- onChange={[Function]}
16
- value={2018-06-13T07:00:00.000Z}
17
- />
18
- `;
@@ -1,84 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`features/metadata-instance-editor/fields/EnumMetadataField should correctly render an enum field 1`] = `
4
- <div
5
- className="bdl-EnumMetadataField"
6
- >
7
- <Label>
8
- <SingleSelectField
9
- isEscapedWithReference={true}
10
- isScrollable={true}
11
- onChange={[Function]}
12
- options={
13
- [
14
- {
15
- "displayText": undefined,
16
- "isSelectable": false,
17
- "value": undefined,
18
- },
19
- {
20
- "displayText": "foo",
21
- "isSelectable": true,
22
- "value": "foo",
23
- },
24
- {
25
- "displayText": "bar",
26
- "isSelectable": true,
27
- "value": "bar",
28
- },
29
- {
30
- "displayText": "baz",
31
- "isSelectable": true,
32
- "value": "baz",
33
- },
34
- ]
35
- }
36
- selectedValue="value"
37
- />
38
- </Label>
39
- </div>
40
- `;
41
-
42
- exports[`features/metadata-instance-editor/fields/EnumMetadataField should correctly render an enum field with description 1`] = `
43
- <div
44
- className="bdl-EnumMetadataField"
45
- >
46
- <Label>
47
- <i
48
- className="bdl-EnumMetadataField-desc"
49
- >
50
- description
51
- </i>
52
- <SingleSelectField
53
- isEscapedWithReference={true}
54
- isScrollable={true}
55
- onChange={[Function]}
56
- options={
57
- [
58
- {
59
- "displayText": undefined,
60
- "isSelectable": false,
61
- "value": undefined,
62
- },
63
- {
64
- "displayText": "foo",
65
- "isSelectable": true,
66
- "value": "foo",
67
- },
68
- {
69
- "displayText": "bar",
70
- "isSelectable": true,
71
- "value": "bar",
72
- },
73
- {
74
- "displayText": "baz",
75
- "isSelectable": true,
76
- "value": "baz",
77
- },
78
- ]
79
- }
80
- selectedValue="value"
81
- />
82
- </Label>
83
- </div>
84
- `;
@@ -1,8 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`features/metadata-instance-editor/fields/FloatMetadataField should correctly render a float field 1`] = `
4
- <TextMetadataField
5
- dataValue="value"
6
- onChange={[Function]}
7
- />
8
- `;
@@ -1,8 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`features/metadata-instance-editor/fields/IntegerMetadataField should correctly render an integer field 1`] = `
4
- <TextMetadataField
5
- dataValue="value"
6
- onChange={[Function]}
7
- />
8
- `;
@@ -1,58 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`features/metadata-instance-editor/fields/MultiSelectMetadataField should correctly render 1`] = `
4
- <div
5
- className="bdl-MultiSelectMetadataField"
6
- >
7
- <Label>
8
- <MultiSelectField
9
- isEscapedWithReference={true}
10
- isScrollable={true}
11
- onChange={[Function]}
12
- options={[]}
13
- placeholder={
14
- <FormattedMessage
15
- defaultMessage="Select Values"
16
- id="boxui.metadataInstanceFields.fieldMultiSelectValue"
17
- />
18
- }
19
- selectedValues={
20
- [
21
- "value",
22
- ]
23
- }
24
- />
25
- </Label>
26
- </div>
27
- `;
28
-
29
- exports[`features/metadata-instance-editor/fields/MultiSelectMetadataField should correctly render with description 1`] = `
30
- <div
31
- className="bdl-MultiSelectMetadataField"
32
- >
33
- <Label>
34
- <i
35
- className="bdl-MultiSelectMetadataField-desc"
36
- >
37
- description
38
- </i>
39
- <MultiSelectField
40
- isEscapedWithReference={true}
41
- isScrollable={true}
42
- onChange={[Function]}
43
- options={[]}
44
- placeholder={
45
- <FormattedMessage
46
- defaultMessage="Select Values"
47
- id="boxui.metadataInstanceFields.fieldMultiSelectValue"
48
- />
49
- }
50
- selectedValues={
51
- [
52
- "value",
53
- ]
54
- }
55
- />
56
- </Label>
57
- </div>
58
- `;
@@ -1,31 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`features/metadata-instance-editor/fields/TextMetadataField should correctly render a number field 1`] = `
4
- <TextInput
5
- className="bdl-TextMetadataField"
6
- hideOptionalLabel={true}
7
- onChange={[Function]}
8
- type="number"
9
- value="value"
10
- />
11
- `;
12
-
13
- exports[`features/metadata-instance-editor/fields/TextMetadataField should correctly render a text field 1`] = `
14
- <TextInput
15
- className="bdl-TextMetadataField"
16
- hideOptionalLabel={true}
17
- onChange={[Function]}
18
- type="text"
19
- value="value"
20
- />
21
- `;
22
-
23
- exports[`features/metadata-instance-editor/fields/TextMetadataField should correctly render a zero in a number field 1`] = `
24
- <TextInput
25
- className="bdl-TextMetadataField"
26
- hideOptionalLabel={true}
27
- onChange={[Function]}
28
- type="number"
29
- value={0}
30
- />
31
- `;