@dhis2/analytics 28.0.4 → 28.0.5
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/build/cjs/__demo__/OpenFileDialog.stories.js +19 -1
- package/build/cjs/components/DimensionsPanel/List/DimensionList.js +3 -1
- package/build/cjs/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +48 -41
- package/build/cjs/components/DimensionsPanel/List/__tests__/__snapshots__/DimensionItem.spec.js.snap +110 -114
- package/build/cjs/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +36 -33
- package/build/cjs/components/FileMenu/__tests__/DeleteDialog.spec.js +24 -27
- package/build/cjs/components/FileMenu/__tests__/FileMenu.spec.js +51 -31
- package/build/cjs/components/FileMenu/__tests__/GetLinkDialog.spec.js +28 -31
- package/build/cjs/components/FileMenu/__tests__/RenameDialog.spec.js +17 -11
- package/build/cjs/components/FileMenu/__tests__/SaveAsDialog.spec.js +44 -37
- package/build/cjs/components/Filter/__tests__/Filter.spec.js +29 -34
- package/build/cjs/components/OpenFileDialog/CreatedByFilter.js +9 -1
- package/build/cjs/components/OpenFileDialog/OpenFileDialog.js +14 -34
- package/build/cjs/components/OpenFileDialog/VisTypeFilter.js +39 -1
- package/build/cjs/components/OpenFileDialog/__tests__/OpenFileDialog.spec.js +51 -0
- package/build/cjs/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +78 -44
- package/build/cjs/components/PeriodDimension/FixedPeriodFilter.js +1 -0
- package/build/cjs/components/PeriodDimension/RelativePeriodFilter.js +3 -2
- package/build/cjs/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +14 -21
- package/build/cjs/components/PeriodDimension/__tests__/PeriodDimension.spec.js +27 -23
- package/build/cjs/components/RichText/Editor/__tests__/Editor.spec.js +6 -7
- package/build/cjs/components/RichText/Parser/__tests__/MdParser.spec.js +1 -1
- package/build/cjs/components/RichText/Parser/__tests__/Parser.spec.js +22 -23
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +52 -42
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +8 -8
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +23 -18
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +23 -17
- package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/__snapshots__/HoverMenuList.spec.js.snap +63 -0
- package/build/cjs/components/Toolbar/InterpretationsAndDetailsToggler.js +3 -1
- package/build/cjs/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +19 -18
- package/build/cjs/components/Toolbar/__tests__/Toolbar.spec.js +8 -8
- package/build/cjs/components/Toolbar/__tests__/ToolbarSidebar.spec.js +14 -11
- package/build/cjs/components/Toolbar/__tests__/UpdateButton.spec.js +16 -14
- package/build/cjs/components/TranslationDialog/TranslationModal/TranslationModal.js +2 -1
- package/build/cjs/components/TranslationDialog/TranslationModal/__tests__/TranslationModal.spec.js +25 -16
- package/build/es/__demo__/OpenFileDialog.stories.js +17 -0
- package/build/es/components/DimensionsPanel/List/DimensionList.js +3 -1
- package/build/es/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +47 -40
- package/build/es/components/DimensionsPanel/List/__tests__/__snapshots__/DimensionItem.spec.js.snap +110 -114
- package/build/es/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +35 -32
- package/build/es/components/FileMenu/__tests__/DeleteDialog.spec.js +23 -26
- package/build/es/components/FileMenu/__tests__/FileMenu.spec.js +52 -32
- package/build/es/components/FileMenu/__tests__/GetLinkDialog.spec.js +27 -30
- package/build/es/components/FileMenu/__tests__/RenameDialog.spec.js +18 -12
- package/build/es/components/FileMenu/__tests__/SaveAsDialog.spec.js +43 -36
- package/build/es/components/Filter/__tests__/Filter.spec.js +28 -33
- package/build/es/components/OpenFileDialog/CreatedByFilter.js +7 -0
- package/build/es/components/OpenFileDialog/OpenFileDialog.js +14 -35
- package/build/es/components/OpenFileDialog/VisTypeFilter.js +38 -1
- package/build/es/components/OpenFileDialog/__tests__/OpenFileDialog.spec.js +49 -0
- package/build/es/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +77 -43
- package/build/es/components/PeriodDimension/FixedPeriodFilter.js +1 -0
- package/build/es/components/PeriodDimension/RelativePeriodFilter.js +3 -2
- package/build/es/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +13 -20
- package/build/es/components/PeriodDimension/__tests__/PeriodDimension.spec.js +26 -22
- package/build/es/components/RichText/Editor/__tests__/Editor.spec.js +7 -8
- package/build/es/components/RichText/Parser/__tests__/MdParser.spec.js +1 -1
- package/build/es/components/RichText/Parser/__tests__/Parser.spec.js +21 -22
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +53 -43
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +7 -7
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +23 -18
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +21 -15
- package/build/es/components/Toolbar/HoverMenuBar/__tests__/__snapshots__/HoverMenuList.spec.js.snap +63 -0
- package/build/es/components/Toolbar/InterpretationsAndDetailsToggler.js +3 -1
- package/build/es/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +18 -17
- package/build/es/components/Toolbar/__tests__/Toolbar.spec.js +7 -7
- package/build/es/components/Toolbar/__tests__/ToolbarSidebar.spec.js +13 -10
- package/build/es/components/Toolbar/__tests__/UpdateButton.spec.js +15 -13
- package/build/es/components/TranslationDialog/TranslationModal/TranslationModal.js +2 -1
- package/build/es/components/TranslationDialog/TranslationModal/__tests__/TranslationModal.spec.js +24 -15
- package/package.json +2 -4
- package/build/cjs/components/OrgUnitDimension/__tests__/__snapshots__/OrgUnitDimension.spec.js.snap +0 -89
- package/build/cjs/components/PeriodDimension/__tests__/PeriodSelector.spec.js +0 -29
- package/build/cjs/components/PeriodDimension/__tests__/__snapshots__/FixedPeriodSingleSelect.spec.js.snap +0 -92
- package/build/cjs/components/PeriodDimension/__tests__/__snapshots__/PeriodDimension.spec.js.snap +0 -16
- package/build/cjs/components/PeriodDimension/__tests__/__snapshots__/PeriodSelector.spec.js.snap +0 -89
- package/build/es/components/OrgUnitDimension/__tests__/__snapshots__/OrgUnitDimension.spec.js.snap +0 -89
- package/build/es/components/PeriodDimension/__tests__/PeriodSelector.spec.js +0 -26
- package/build/es/components/PeriodDimension/__tests__/__snapshots__/FixedPeriodSingleSelect.spec.js.snap +0 -92
- package/build/es/components/PeriodDimension/__tests__/__snapshots__/PeriodDimension.spec.js.snap +0 -16
- package/build/es/components/PeriodDimension/__tests__/__snapshots__/PeriodSelector.spec.js.snap +0 -89
|
@@ -1,105 +1,115 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("@testing-library/jest-dom");
|
|
4
3
|
var _react = require("@testing-library/react");
|
|
5
|
-
var
|
|
4
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
6
5
|
var _react2 = _interopRequireDefault(require("react"));
|
|
7
6
|
var _index = require("../index.js");
|
|
8
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
8
|
describe('<HoverMenuBar/>', () => {
|
|
10
|
-
|
|
9
|
+
test('renders children', () => {
|
|
11
10
|
const childNode = 'text node';
|
|
12
|
-
|
|
13
|
-
expect(
|
|
11
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuBar, null, childNode));
|
|
12
|
+
expect(_react.screen.getByText(childNode)).toBeInTheDocument();
|
|
14
13
|
});
|
|
15
|
-
|
|
14
|
+
test('accepts a `dataTest` prop', () => {
|
|
16
15
|
const dataTest = 'test';
|
|
17
|
-
|
|
16
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuBar, {
|
|
18
17
|
dataTest: dataTest
|
|
19
18
|
}, "children"));
|
|
20
|
-
expect(
|
|
19
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
21
20
|
});
|
|
22
21
|
describe('mouse interactions', () => {
|
|
23
|
-
|
|
22
|
+
test('does not open on hover before a dropdown anchor is clicked', async () => {
|
|
23
|
+
const user = _userEvent.default.setup();
|
|
24
24
|
createFullMenuBarWrapper();
|
|
25
|
-
|
|
25
|
+
await user.hover(_react.screen.getByText('Menu A'));
|
|
26
26
|
await expectMenuItemsInDocument([['Menu item A.1', false], ['Menu item A.2', false], ['Menu item A.3', false]]);
|
|
27
27
|
});
|
|
28
|
-
|
|
28
|
+
test('does not open when a disabled dropdown anchor is clicked', async () => {
|
|
29
|
+
const user = _userEvent.default.setup();
|
|
29
30
|
createFullMenuBarWrapper();
|
|
30
|
-
|
|
31
|
+
await user.click(_react.screen.getByText('Menu C'));
|
|
31
32
|
await expectMenuItemsInDocument([['Menu item A.1', false], ['Menu item A.2', false], ['Menu item A.3', false]]);
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
+
test('opens menu list when clicked', async () => {
|
|
35
|
+
const user = _userEvent.default.setup();
|
|
34
36
|
createFullMenuBarWrapper();
|
|
35
|
-
|
|
37
|
+
await user.click(_react.screen.getByText('Menu A'));
|
|
36
38
|
await expectMenuItemsInDocument([['Menu item A.1', true], ['Menu item B.1', false], ['Menu item C.1', false]]);
|
|
37
39
|
});
|
|
38
|
-
|
|
40
|
+
test('responds to hover once open', async () => {
|
|
41
|
+
const user = _userEvent.default.setup();
|
|
39
42
|
createFullMenuBarWrapper();
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
await user.click(_react.screen.getByText('Menu A'));
|
|
44
|
+
await user.hover(_react.screen.getByText('Menu B'));
|
|
42
45
|
await expectMenuItemsInDocument([['Menu item A.1', false], ['Menu item B.1', true], ['Menu item C.1', false]]);
|
|
43
46
|
});
|
|
44
|
-
|
|
47
|
+
test('does not open disabled dropdown on hover in hover mode', async () => {
|
|
48
|
+
const user = _userEvent.default.setup();
|
|
45
49
|
createFullMenuBarWrapper();
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
await user.click(_react.screen.getByText('Menu B'));
|
|
51
|
+
await user.hover(_react.screen.getByText('Menu C'));
|
|
48
52
|
await expectMenuItemsInDocument([['Menu item B.1', true], ['Menu item C.1', false]]);
|
|
49
53
|
});
|
|
50
|
-
|
|
54
|
+
test('opens submenus when in hover mode', async () => {
|
|
55
|
+
const user = _userEvent.default.setup();
|
|
51
56
|
createFullMenuBarWrapper();
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
await user.click(_react.screen.getByText('Menu B'));
|
|
58
|
+
await user.hover(_react.screen.getByText('Menu item B.1'));
|
|
54
59
|
await expectMenuItemsInDocument([['Menu item B.1.1', true], ['Menu item B.1.2', true], ['Menu item B.1.3', true], ['Menu item B.2.1', false], ['Menu item B.2.2', false], ['Menu item B.2.3', false]]);
|
|
55
|
-
|
|
60
|
+
await user.hover(_react.screen.getByText('Menu item B.2'));
|
|
56
61
|
await expectMenuItemsInDocument([['Menu item B.1.1', false], ['Menu item B.1.2', false], ['Menu item B.1.3', false], ['Menu item B.2.1', true], ['Menu item B.2.2', true], ['Menu item B.2.3', true]]);
|
|
57
62
|
});
|
|
58
|
-
|
|
63
|
+
test('does not open disabled submenus when in hover mode', async () => {
|
|
64
|
+
const user = _userEvent.default.setup();
|
|
59
65
|
createFullMenuBarWrapper();
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
await user.click(_react.screen.getByText('Menu B'));
|
|
67
|
+
await user.hover(_react.screen.getByText('Menu item B.2'));
|
|
62
68
|
await expectMenuItemsInDocument([['Menu item B.2.1', true], ['Menu item B.2.2', true], ['Menu item B.2.3', true], ['Menu item B.3.1', false], ['Menu item B.3.2', false], ['Menu item B.3.3', false]]);
|
|
63
|
-
|
|
69
|
+
await user.hover(_react.screen.getByText('Menu item B.3'));
|
|
64
70
|
await expectMenuItemsInDocument([['Menu item B.2.1', true], ['Menu item B.2.2', true], ['Menu item B.2.3', true], ['Menu item B.3.1', false], ['Menu item B.3.2', false], ['Menu item B.3.3', false]]);
|
|
65
71
|
});
|
|
66
|
-
|
|
72
|
+
test('closes when clicking on then document', async () => {
|
|
73
|
+
const user = _userEvent.default.setup();
|
|
67
74
|
createFullMenuBarWrapper();
|
|
68
|
-
|
|
75
|
+
await user.click(_react.screen.getByText('Menu A'));
|
|
69
76
|
await expectMenuItemsInDocument([['Menu item A.1', true]]);
|
|
70
|
-
|
|
77
|
+
await user.click(document.body);
|
|
71
78
|
await expectMenuItemsInDocument([['Menu item A.1', false]]);
|
|
72
79
|
});
|
|
73
|
-
|
|
80
|
+
test('stays open when clicking a open submenu anchor', async () => {
|
|
81
|
+
const user = _userEvent.default.setup();
|
|
74
82
|
createFullMenuBarWrapper();
|
|
75
|
-
|
|
83
|
+
await user.click(_react.screen.getByText('Menu B'));
|
|
76
84
|
await expectMenuItemsInDocument([['Menu item B.1', true]]);
|
|
77
|
-
|
|
85
|
+
await user.hover(_react.screen.getByText('Menu item B.1'));
|
|
78
86
|
await expectMenuItemsInDocument([['Menu item B.1', true], ['Menu item B.1.1', true], ['Menu item B.1.2', true], ['Menu item B.1.3', true]]);
|
|
79
|
-
|
|
87
|
+
await user.click(_react.screen.getByText('Menu item B.1'));
|
|
80
88
|
await expectMenuItemsInDocument([['Menu item B.1', true], ['Menu item B.1.1', true], ['Menu item B.1.2', true], ['Menu item B.1.3', true]]);
|
|
81
89
|
});
|
|
82
|
-
|
|
90
|
+
test('calls the onClick of the menu item and closes when clicking a menu item', async () => {
|
|
91
|
+
const user = _userEvent.default.setup();
|
|
83
92
|
const menuItemOnClickSpy = jest.fn();
|
|
84
93
|
createFullMenuBarWrapper({
|
|
85
94
|
menuItemOnClickSpy
|
|
86
95
|
});
|
|
87
|
-
|
|
96
|
+
await user.click(_react.screen.getByText('Menu A'));
|
|
88
97
|
await expectMenuItemsInDocument([['Menu item A.1', true]]);
|
|
89
|
-
|
|
98
|
+
await user.click(_react.screen.getByText('Menu item A.1'));
|
|
90
99
|
expect(menuItemOnClickSpy).toHaveBeenCalledTimes(1);
|
|
91
100
|
await expectMenuItemsInDocument([['Menu item A.1', false]]);
|
|
92
101
|
});
|
|
93
|
-
|
|
102
|
+
test('calls the onClick of the menu item and closes when clicking a submenu item', async () => {
|
|
103
|
+
const user = _userEvent.default.setup();
|
|
94
104
|
const subMenuItemOnClickSpy = jest.fn();
|
|
95
105
|
createFullMenuBarWrapper({
|
|
96
106
|
subMenuItemOnClickSpy
|
|
97
107
|
});
|
|
98
|
-
|
|
108
|
+
await user.click(_react.screen.getByText('Menu B'));
|
|
99
109
|
await expectMenuItemsInDocument([['Menu item B.1', true]]);
|
|
100
|
-
|
|
110
|
+
await user.hover(_react.screen.getByText('Menu item B.1'));
|
|
101
111
|
await expectMenuItemsInDocument([['Menu item B.1.1', true]]);
|
|
102
|
-
|
|
112
|
+
await user.click(_react.screen.getByText('Menu item B.1.1'));
|
|
103
113
|
expect(subMenuItemOnClickSpy).toHaveBeenCalledTimes(1);
|
|
104
114
|
await expectMenuItemsInDocument([['Menu item B.1', false], ['Menu item B.1.1', false], ['Menu item B.1.1', false]]);
|
|
105
115
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
5
5
|
var _index = require("../index.js");
|
|
6
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
describe('<HoverMenuDropdown/>', () => {
|
|
@@ -9,20 +9,20 @@ describe('<HoverMenuDropdown/>', () => {
|
|
|
9
9
|
* in the mouse interaction tests for the HoverMenuBar.
|
|
10
10
|
* Only the `dataTest` prop needs to be verified here. */
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
test('accepts a `dataTest` prop', () => {
|
|
13
13
|
const dataTest = 'test';
|
|
14
|
-
|
|
14
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuDropdown, {
|
|
15
15
|
label: "test dropdown",
|
|
16
16
|
dataTest: dataTest
|
|
17
17
|
}, "children"));
|
|
18
|
-
expect(
|
|
18
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
19
19
|
});
|
|
20
|
-
|
|
20
|
+
test('accepts a `className` prop', () => {
|
|
21
21
|
const className = 'test';
|
|
22
|
-
|
|
22
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuDropdown, {
|
|
23
23
|
label: "test dropdown",
|
|
24
24
|
className: className
|
|
25
25
|
}, "children"));
|
|
26
|
-
expect(
|
|
26
|
+
expect(_react.screen.getByRole('button')).toHaveClass(className);
|
|
27
27
|
});
|
|
28
28
|
});
|
|
@@ -1,32 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("@testing-library/jest-dom");
|
|
4
3
|
var _react = require("@testing-library/react");
|
|
5
|
-
var _enzyme = require("enzyme");
|
|
6
4
|
var _react2 = _interopRequireDefault(require("react"));
|
|
7
5
|
var _index = require("../index.js");
|
|
8
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
7
|
describe('<HoverMenuList/>', () => {
|
|
10
8
|
const dataTest = 'test';
|
|
11
9
|
const childNode = 'children';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
expect(
|
|
10
|
+
test('renders children', () => {
|
|
11
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuList, null, childNode));
|
|
12
|
+
expect(_react.screen.getByText(childNode)).toBeInTheDocument();
|
|
15
13
|
});
|
|
16
|
-
|
|
14
|
+
test('accept a `className` prop', () => {
|
|
17
15
|
const className = 'className';
|
|
18
|
-
|
|
16
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuList, {
|
|
17
|
+
dataTest: dataTest,
|
|
19
18
|
className: className
|
|
20
19
|
}, childNode));
|
|
21
|
-
expect(
|
|
20
|
+
expect(_react.screen.getByTestId(dataTest)).toHaveClass(className);
|
|
22
21
|
});
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
test('accepts a `dataTest` prop', () => {
|
|
23
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuList, {
|
|
25
24
|
dataTest: dataTest
|
|
26
25
|
}, childNode));
|
|
27
|
-
expect(
|
|
26
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
28
27
|
});
|
|
29
|
-
|
|
28
|
+
test('accept a `dense` prop', () => {
|
|
30
29
|
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuList, {
|
|
31
30
|
dense: true
|
|
32
31
|
}, /*#__PURE__*/_react2.default.createElement(_index.HoverMenuListItem, {
|
|
@@ -37,18 +36,24 @@ describe('<HoverMenuList/>', () => {
|
|
|
37
36
|
expect(_react.screen.getByText('item 1').closest('li')).toHaveClass('dense');
|
|
38
37
|
expect(_react.screen.getByText('item 2').closest('li')).toHaveClass('dense');
|
|
39
38
|
});
|
|
40
|
-
|
|
39
|
+
test('accept a `maxHeight` prop', () => {
|
|
41
40
|
const maxHeight = '100000px';
|
|
42
|
-
const
|
|
41
|
+
const {
|
|
42
|
+
container
|
|
43
|
+
} = (0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuList, {
|
|
44
|
+
dataTest: dataTest,
|
|
43
45
|
maxHeight: maxHeight
|
|
44
46
|
}, childNode));
|
|
45
|
-
expect(
|
|
47
|
+
expect(container).toMatchSnapshot();
|
|
46
48
|
});
|
|
47
|
-
|
|
49
|
+
test('accept a `maxWidth` prop', () => {
|
|
48
50
|
const maxWidth = '100000px';
|
|
49
|
-
const
|
|
51
|
+
const {
|
|
52
|
+
container
|
|
53
|
+
} = (0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuList, {
|
|
54
|
+
dataTest: dataTest,
|
|
50
55
|
maxWidth: maxWidth
|
|
51
56
|
}, childNode));
|
|
52
|
-
expect(
|
|
57
|
+
expect(container).toMatchSnapshot();
|
|
53
58
|
});
|
|
54
59
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
5
5
|
var _index = require("../index.js");
|
|
6
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
describe('<HoverMenuListItem/>', () => {
|
|
@@ -10,36 +10,42 @@ describe('<HoverMenuListItem/>', () => {
|
|
|
10
10
|
* Only the `className`, `dataTest`, `destructive` and
|
|
11
11
|
* `icon` prop need to be verified here. */
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
test('accepts a `className` prop', () => {
|
|
14
14
|
const className = 'className';
|
|
15
|
-
|
|
15
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuListItem, {
|
|
16
16
|
className: className
|
|
17
17
|
}));
|
|
18
|
-
expect(
|
|
18
|
+
expect(_react.screen.getByTestId('dhis2-uicore-hovermenulistitem')).toHaveClass(className);
|
|
19
19
|
});
|
|
20
|
-
|
|
20
|
+
test('accepts a `dataTest` prop', () => {
|
|
21
21
|
const dataTest = 'test';
|
|
22
|
-
|
|
22
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuListItem, {
|
|
23
23
|
dataTest: dataTest
|
|
24
24
|
}));
|
|
25
|
-
expect(
|
|
25
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
26
26
|
});
|
|
27
|
-
|
|
28
|
-
const
|
|
27
|
+
test('accepts a `destructive` prop', () => {
|
|
28
|
+
const dataTest = 'test';
|
|
29
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuListItem, {
|
|
30
|
+
dataTest: dataTest,
|
|
29
31
|
destructive: true
|
|
30
32
|
}));
|
|
31
|
-
expect(
|
|
33
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
32
34
|
});
|
|
33
|
-
|
|
35
|
+
test('accepts an `icon` prop', () => {
|
|
36
|
+
const dataTest = 'test';
|
|
34
37
|
const iconText = 'I am an icon';
|
|
35
|
-
const icon = /*#__PURE__*/
|
|
38
|
+
const icon = /*#__PURE__*/_react2.default.createElement("span", {
|
|
36
39
|
id: "testicon"
|
|
37
40
|
}, iconText);
|
|
38
|
-
|
|
41
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.HoverMenuListItem, {
|
|
42
|
+
dataTest: dataTest,
|
|
39
43
|
icon: icon
|
|
40
44
|
}));
|
|
41
|
-
|
|
42
|
-
expect(
|
|
43
|
-
expect(
|
|
45
|
+
const iconWrapperEl = _react.screen.getByTestId(dataTest).firstChild;
|
|
46
|
+
expect(iconWrapperEl).toBeInTheDocument();
|
|
47
|
+
expect(iconWrapperEl).toHaveClass('icon');
|
|
48
|
+
const iconEl = iconWrapperEl.closest('span');
|
|
49
|
+
expect(iconEl).toHaveTextContent(iconText);
|
|
44
50
|
});
|
|
45
51
|
});
|
package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/__snapshots__/HoverMenuList.spec.js.snap
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<HoverMenuList/> accept a \`maxHeight\` prop 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<ul
|
|
6
|
+
data-test="test"
|
|
7
|
+
>
|
|
8
|
+
children
|
|
9
|
+
<style>
|
|
10
|
+
|
|
11
|
+
ul {
|
|
12
|
+
position: relative;
|
|
13
|
+
margin: 0;
|
|
14
|
+
padding: 0;
|
|
15
|
+
user-select: none;
|
|
16
|
+
background: #ffffff;
|
|
17
|
+
border: 1px solid #f3f5f7;
|
|
18
|
+
border-radius: 3px;
|
|
19
|
+
box-shadow: 0px 10px 15px -3px rgba(33,41,52,0.1), 0px 4px 6px -2px rgba(33,41,52,0.05);
|
|
20
|
+
display: inline-block;
|
|
21
|
+
min-width: 128px;
|
|
22
|
+
max-width: 380px;
|
|
23
|
+
max-height: 100000px;
|
|
24
|
+
padding: 4px 0;
|
|
25
|
+
overflow: auto;
|
|
26
|
+
list-style: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
</style>
|
|
30
|
+
</ul>
|
|
31
|
+
</div>
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
exports[`<HoverMenuList/> accept a \`maxWidth\` prop 1`] = `
|
|
35
|
+
<div>
|
|
36
|
+
<ul
|
|
37
|
+
data-test="test"
|
|
38
|
+
>
|
|
39
|
+
children
|
|
40
|
+
<style>
|
|
41
|
+
|
|
42
|
+
ul {
|
|
43
|
+
position: relative;
|
|
44
|
+
margin: 0;
|
|
45
|
+
padding: 0;
|
|
46
|
+
user-select: none;
|
|
47
|
+
background: #ffffff;
|
|
48
|
+
border: 1px solid #f3f5f7;
|
|
49
|
+
border-radius: 3px;
|
|
50
|
+
box-shadow: 0px 10px 15px -3px rgba(33,41,52,0.1), 0px 4px 6px -2px rgba(33,41,52,0.05);
|
|
51
|
+
display: inline-block;
|
|
52
|
+
min-width: 128px;
|
|
53
|
+
max-width: 100000px;
|
|
54
|
+
max-height: auto;
|
|
55
|
+
padding: 4px 0;
|
|
56
|
+
overflow: auto;
|
|
57
|
+
list-style: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
</style>
|
|
61
|
+
</ul>
|
|
62
|
+
</div>
|
|
63
|
+
`;
|
|
@@ -21,7 +21,9 @@ const InterpretationsAndDetailsToggler = ({
|
|
|
21
21
|
disabled: disabled,
|
|
22
22
|
"data-test": dataTest,
|
|
23
23
|
className: "jsx-1238484262 " + `jsx-${_MenuButtonStyles.default.__hash}`
|
|
24
|
-
}, isShowing ? /*#__PURE__*/_react.default.createElement(_ui.IconChevronRight24,
|
|
24
|
+
}, isShowing ? /*#__PURE__*/_react.default.createElement(_ui.IconChevronRight24, {
|
|
25
|
+
dataTest: `${dataTest}-showing`
|
|
26
|
+
}) : /*#__PURE__*/_react.default.createElement(_ui.IconChevronLeft24, null), _d2I18n.default.t('Interpretations and details'), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
25
27
|
id: _MenuButtonStyles.default.__hash
|
|
26
28
|
}, _MenuButtonStyles.default), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
27
29
|
id: "1238484262"
|
|
@@ -1,45 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
5
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
5
6
|
var _index = require("../index.js");
|
|
6
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
describe('<InterpretationsAndDetailsToggler/>', () => {
|
|
8
9
|
const noop = () => {};
|
|
9
|
-
|
|
10
|
+
test('accepts an `onClick` prop', async () => {
|
|
11
|
+
const user = _userEvent.default.setup();
|
|
10
12
|
const onClick = jest.fn();
|
|
11
|
-
|
|
13
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.InterpretationsAndDetailsToggler, {
|
|
12
14
|
onClick: onClick
|
|
13
15
|
}));
|
|
14
|
-
|
|
16
|
+
await user.click(_react.screen.getByRole('button'));
|
|
15
17
|
expect(onClick).toHaveBeenCalledTimes(1);
|
|
16
18
|
});
|
|
17
|
-
|
|
19
|
+
test('accepts a `dataTest` prop', () => {
|
|
18
20
|
const dataTest = 'test';
|
|
19
|
-
|
|
21
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.InterpretationsAndDetailsToggler, {
|
|
20
22
|
onClick: noop,
|
|
21
23
|
dataTest: dataTest
|
|
22
24
|
}));
|
|
23
|
-
expect(
|
|
25
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
24
26
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
test('accepts a `disabled` prop', () => {
|
|
28
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.InterpretationsAndDetailsToggler, {
|
|
27
29
|
disabled: true,
|
|
28
30
|
onClick: noop
|
|
29
31
|
}));
|
|
30
|
-
expect(
|
|
32
|
+
expect(_react.screen.getByRole('button')).toBeDisabled();
|
|
31
33
|
});
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
+
test('accepts an `isShowing` prop', () => {
|
|
35
|
+
const showingDataTest = 'dhis2-analytics-interpretationsanddetailstoggler-showing';
|
|
36
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.InterpretationsAndDetailsToggler, {
|
|
34
37
|
onClick: noop
|
|
35
38
|
}));
|
|
36
|
-
|
|
39
|
+
expect(_react.screen.queryByTestId(showingDataTest)).not.toBeInTheDocument();
|
|
40
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.InterpretationsAndDetailsToggler, {
|
|
37
41
|
isShowing: true,
|
|
38
42
|
onClick: noop
|
|
39
43
|
}));
|
|
40
|
-
expect(
|
|
41
|
-
expect(wrapper.find('SvgChevronLeft24')).toHaveLength(1);
|
|
42
|
-
expect(wrapperWithIsShowing.find('SvgChevronRight24')).toHaveLength(1);
|
|
43
|
-
expect(wrapperWithIsShowing.find('SvgChevronLeft24')).toHaveLength(0);
|
|
44
|
+
expect(_react.screen.getByTestId(showingDataTest)).toBeInTheDocument();
|
|
44
45
|
});
|
|
45
46
|
});
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
5
5
|
var _index = require("../index.js");
|
|
6
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
describe('<Toolbar/>', () => {
|
|
8
|
-
|
|
8
|
+
test('renders children', () => {
|
|
9
9
|
const childNode = 'text node';
|
|
10
|
-
|
|
11
|
-
expect(
|
|
10
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.Toolbar, null, childNode));
|
|
11
|
+
expect(_react.screen.getByText(childNode)).toBeInTheDocument();
|
|
12
12
|
});
|
|
13
|
-
|
|
13
|
+
test('accepts a `dataTest` prop', () => {
|
|
14
14
|
const dataTest = 'test';
|
|
15
|
-
|
|
15
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.Toolbar, {
|
|
16
16
|
dataTest: dataTest
|
|
17
17
|
}));
|
|
18
|
-
expect(
|
|
18
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
19
19
|
});
|
|
20
20
|
});
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
5
5
|
var _index = require("../index.js");
|
|
6
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
7
|
describe('<ToolbarSidebar/>', () => {
|
|
8
|
-
|
|
8
|
+
test('renders children', () => {
|
|
9
9
|
const childNode = 'text node';
|
|
10
|
-
|
|
11
|
-
expect(
|
|
10
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.ToolbarSidebar, null, childNode));
|
|
11
|
+
expect(_react.screen.getByText(childNode)).toBeInTheDocument();
|
|
12
12
|
});
|
|
13
|
-
|
|
13
|
+
test('accepts a `dataTest` prop', () => {
|
|
14
14
|
const dataTest = 'test';
|
|
15
|
-
|
|
15
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.ToolbarSidebar, {
|
|
16
16
|
dataTest: dataTest
|
|
17
17
|
}));
|
|
18
|
-
expect(
|
|
18
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
19
19
|
});
|
|
20
|
-
|
|
21
|
-
const
|
|
20
|
+
test('accepts a `isHidden` prop', () => {
|
|
21
|
+
const {
|
|
22
|
+
container
|
|
23
|
+
} = (0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.ToolbarSidebar, {
|
|
22
24
|
isHidden: true
|
|
23
25
|
}));
|
|
24
|
-
|
|
26
|
+
const divEl = container.querySelector('div');
|
|
27
|
+
expect(divEl).toHaveClass('isHidden');
|
|
25
28
|
});
|
|
26
29
|
});
|
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
5
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
5
6
|
var _index = require("../index.js");
|
|
6
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
describe('<UpdateButton/>', () => {
|
|
8
9
|
const noop = () => {};
|
|
9
|
-
|
|
10
|
+
test('accepts an `onClick` prop', async () => {
|
|
11
|
+
const user = _userEvent.default.setup();
|
|
10
12
|
const onClick = jest.fn();
|
|
11
|
-
|
|
13
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.UpdateButton, {
|
|
12
14
|
onClick: onClick
|
|
13
15
|
}));
|
|
14
|
-
|
|
16
|
+
await user.click(_react.screen.getByRole('button'));
|
|
15
17
|
expect(onClick).toHaveBeenCalledTimes(1);
|
|
16
18
|
});
|
|
17
|
-
|
|
19
|
+
test('accepts a `dataTest` prop', () => {
|
|
18
20
|
const dataTest = 'test';
|
|
19
|
-
|
|
21
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.UpdateButton, {
|
|
20
22
|
onClick: noop,
|
|
21
23
|
dataTest: dataTest
|
|
22
24
|
}));
|
|
23
|
-
expect(
|
|
25
|
+
expect(_react.screen.getByTestId(dataTest)).toBeInTheDocument();
|
|
24
26
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
test('accepts a `disabled` prop', () => {
|
|
28
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.UpdateButton, {
|
|
27
29
|
disabled: true,
|
|
28
30
|
onClick: noop
|
|
29
31
|
}));
|
|
30
|
-
expect(
|
|
32
|
+
expect(_react.screen.getByRole('button')).toBeDisabled();
|
|
31
33
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
test('accepts an `loading` prop', () => {
|
|
35
|
+
(0, _react.render)(/*#__PURE__*/_react2.default.createElement(_index.UpdateButton, {
|
|
34
36
|
onClick: noop,
|
|
35
37
|
loading: true
|
|
36
38
|
}));
|
|
37
|
-
expect(
|
|
39
|
+
expect(_react.screen.getByTestId('dhis2-uicore-circularloader')).toBeInTheDocument();
|
|
38
40
|
});
|
|
39
41
|
});
|
|
@@ -37,7 +37,8 @@ const TranslationModal = ({
|
|
|
37
37
|
return /*#__PURE__*/_react.default.createElement(_ui.Modal, {
|
|
38
38
|
large: true,
|
|
39
39
|
position: "middle",
|
|
40
|
-
onClose: onClose
|
|
40
|
+
onClose: onClose,
|
|
41
|
+
dataTest: "dhis2-analytics-translation-modal"
|
|
41
42
|
}, /*#__PURE__*/_react.default.createElement(_ui.ModalTitle, null, _d2I18n.default.t('Translate: {{objectName}}', {
|
|
42
43
|
objectName: objectToTranslate.name || 'TEXT',
|
|
43
44
|
// XXX
|