@sapui5/sap.fe.test 1.96.4 → 1.99.0
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 +6 -3
- package/src/sap/fe/test/.library +1 -1
- package/src/sap/fe/test/BaseActions.js +3 -2
- package/src/sap/fe/test/BaseArrangements.js +3 -2
- package/src/sap/fe/test/BaseAssertions.js +3 -2
- package/src/sap/fe/test/ConfirmDialog.js +3 -2
- package/src/sap/fe/test/FCLView.js +3 -2
- package/src/sap/fe/test/FeMocks.js +66 -0
- package/src/sap/fe/test/FeMocks.ts +77 -0
- package/src/sap/fe/test/Flexibility.js +17 -5
- package/src/sap/fe/test/FlexibleColumnLayout.js +3 -2
- package/src/sap/fe/test/JestTemplatingHelper.js +78 -22
- package/src/sap/fe/test/JestTemplatingHelper.ts +66 -22
- package/src/sap/fe/test/JourneyRunner.js +11 -5
- package/src/sap/fe/test/ListReport.js +11 -16
- package/src/sap/fe/test/LocationUtil.js +3 -2
- package/src/sap/fe/test/ObjectPage.js +28 -55
- package/src/sap/fe/test/Shell.js +3 -2
- package/src/sap/fe/test/Stubs.js +3 -2
- package/src/sap/fe/test/TemplatePage.js +3 -14
- package/src/sap/fe/test/TemplatingTestUtils.js +4 -3
- package/src/sap/fe/test/UI5MockHelper.js +249 -39
- package/src/sap/fe/test/UI5MockHelper.ts +138 -9
- package/src/sap/fe/test/Utils.js +3 -14
- package/src/sap/fe/test/api/APIHelper.js +3 -2
- package/src/sap/fe/test/api/BaseAPI.js +26 -9
- package/src/sap/fe/test/api/ChartActions.js +3 -2
- package/src/sap/fe/test/api/ChartAssertions.js +7 -6
- package/src/sap/fe/test/api/DialogAPI.js +26 -9
- package/src/sap/fe/test/api/DialogActions.js +21 -7
- package/src/sap/fe/test/api/DialogAssertions.js +28 -7
- package/src/sap/fe/test/api/DialogCreateActions.js +4 -3
- package/src/sap/fe/test/api/DialogCreateAssertions.js +4 -3
- package/src/sap/fe/test/api/DialogMessageActions.js +19 -3
- package/src/sap/fe/test/api/DialogMessageAssertions.js +4 -3
- package/src/sap/fe/test/api/DialogType.js +3 -2
- package/src/sap/fe/test/api/DialogValueHelpActions.js +4 -3
- package/src/sap/fe/test/api/DialogValueHelpAssertions.js +4 -3
- package/src/sap/fe/test/api/EditState.js +12 -2
- package/src/sap/fe/test/api/FilterBarAPI.js +3 -2
- package/src/sap/fe/test/api/FilterBarActions.js +41 -6
- package/src/sap/fe/test/api/FilterBarAssertions.js +3 -2
- package/src/sap/fe/test/api/FooterAPI.js +3 -2
- package/src/sap/fe/test/api/FooterActionsBase.js +3 -2
- package/src/sap/fe/test/api/FooterActionsOP.js +3 -2
- package/src/sap/fe/test/api/FooterAssertionsBase.js +3 -2
- package/src/sap/fe/test/api/FooterAssertionsOP.js +3 -2
- package/src/sap/fe/test/api/FormAPI.js +3 -2
- package/src/sap/fe/test/api/FormActions.js +3 -2
- package/src/sap/fe/test/api/FormAssertions.js +36 -6
- package/src/sap/fe/test/api/HeaderAPI.js +3 -2
- package/src/sap/fe/test/api/HeaderActions.js +3 -2
- package/src/sap/fe/test/api/HeaderActionsLR.js +3 -2
- package/src/sap/fe/test/api/HeaderAssertions.js +3 -2
- package/src/sap/fe/test/api/HeaderAssertionsLR.js +3 -2
- package/src/sap/fe/test/api/HeaderLR.js +3 -2
- package/src/sap/fe/test/api/KPICardAPI.js +3 -2
- package/src/sap/fe/test/api/KPICardActions.js +43 -0
- package/src/sap/fe/test/api/KPICardAssertions.js +22 -17
- package/src/sap/fe/test/api/TableAPI.js +3 -2
- package/src/sap/fe/test/api/TableActions.js +4 -22
- package/src/sap/fe/test/api/TableAssertions.js +17 -6
- package/src/sap/fe/test/builder/DialogBuilder.js +3 -2
- package/src/sap/fe/test/builder/FEBuilder.js +3 -2
- package/src/sap/fe/test/builder/KPIBuilder.js +14 -4
- package/src/sap/fe/test/builder/MacroFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFilterBarBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcTableBuilder.js +15 -2
- package/src/sap/fe/test/builder/OverflowToolbarBuilder.js +3 -2
- package/src/sap/fe/test/builder/VMBuilder.js +3 -2
- package/src/sap/fe/test/internal/FEArrangements.js +3 -2
- package/src/sap/fe/test/internal/FEJourneyRunner.js +9 -5
- package/src/sap/fe/test/library.js +4 -3
- package/src/sap/fe/test/massEdit.js +3 -2
- package/ui5.yaml +0 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapui5/sap.fe.test",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.99.0",
|
|
4
4
|
"description": "SAPUI5 Library sap.fe.test",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "SAP SE (https://www.sap.com)",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"build": "echo 'nothing to do'",
|
|
10
10
|
"copy-dependency": "copyfiles -u 7 \"../../node_modules/@sap/ux-ui5-fe-mockserver-middleware/ui5-dist/test/**/*.js\" target/classes/META-INF/test-resources",
|
|
11
11
|
"prepare-npm-sources": "babel target/npm-sources/src --out-dir target/npm-sources/src --extensions \".ts\" --config-file ../../.babelrc",
|
|
12
|
+
"prepare-ui5-build-sources": "copyfiles -u 7 \"../../node_modules/@sap/ux-ui5-fe-mockserver-middleware/ui5-dist/test/**/*.js\" target/ui5-build-tmp/test && mkdirp target/ui5-build-tmp/src && babel src --out-dir target/ui5-build-tmp/src --extensions \".ts\" --config-file ../../.babelrc",
|
|
12
13
|
"test": "echo 'nothing to do'"
|
|
13
14
|
},
|
|
14
15
|
"keywords": [
|
|
@@ -17,9 +18,11 @@
|
|
|
17
18
|
],
|
|
18
19
|
"devDependencies": {
|
|
19
20
|
"@babel/cli": "^7.14.8",
|
|
20
|
-
"@ui5/cli": "^2.
|
|
21
|
+
"@ui5/cli": "^2.14.0",
|
|
21
22
|
"copyfiles": "2.2.0",
|
|
23
|
+
"mkdirp": "^1.0.4",
|
|
22
24
|
"xpath": "0.0.27",
|
|
23
|
-
"xml-formatter": "2.4.0"
|
|
25
|
+
"xml-formatter": "2.4.0",
|
|
26
|
+
"@sap-ux/jest-mock-ui5": "2.0.3"
|
|
24
27
|
}
|
|
25
28
|
}
|
package/src/sap/fe/test/.library
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ! SAPUI5
|
|
3
|
-
|
|
2
|
+
* ! SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
|
|
6
7
|
Opa5,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ! SAPUI5
|
|
3
|
-
|
|
2
|
+
* ! SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(
|
|
6
7
|
["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/thirdparty/jquery", "sap/base/util/UriParameters", "./Utils", "./Stubs"],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ! SAPUI5
|
|
3
|
-
|
|
2
|
+
* ! SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
|
|
6
7
|
Opa5,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ! SAPUI5
|
|
3
|
-
|
|
2
|
+
* ! SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(["sap/ui/test/OpaBuilder", "sap/ui/test/Opa5", "sap/fe/test/Utils"], function(OpaBuilder, Opa5, Utils) {
|
|
6
7
|
"use strict";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/PageController", "@sap-ux/jest-mock-ui5/dist/generic", "sap/ui/mdc/FilterBar", "sap/fe/core/controllerextensions/InternalEditFlow"], function (PageController, generic, FilterBar, InternalEditFlow) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
var mock = generic.mock;
|
|
10
|
+
|
|
11
|
+
function mockListReportController() {
|
|
12
|
+
// manually add ListReportController.controller functions since I am unable to import the prototype
|
|
13
|
+
var listReport = {
|
|
14
|
+
_getFilterBarControl: jest.fn(),
|
|
15
|
+
_getControls: jest.fn(),
|
|
16
|
+
_isFilterBarHidden: jest.fn(),
|
|
17
|
+
_isMultiMode: jest.fn(),
|
|
18
|
+
_setCountsOutDated: jest.fn(),
|
|
19
|
+
_getCurrentControl: jest.fn(),
|
|
20
|
+
_getMultiModeControl: jest.fn(),
|
|
21
|
+
_hasMultiVisualizations: jest.fn(),
|
|
22
|
+
_shouldAutoTriggerSearch: jest.fn(),
|
|
23
|
+
_getTable: jest.fn(),
|
|
24
|
+
getExtensionAPI: jest.fn(),
|
|
25
|
+
_editFlow: mock(InternalEditFlow)
|
|
26
|
+
};
|
|
27
|
+
return Object.assign(mock(PageController), listReport);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_exports.mockListReportController = mockListReportController;
|
|
31
|
+
|
|
32
|
+
function mockObjectPageController() {
|
|
33
|
+
// manually add ListReportController.controller functions since I am unable to import the prototype
|
|
34
|
+
var objectPage = {
|
|
35
|
+
getStickyEditMode: jest.fn(),
|
|
36
|
+
getExtensionAPI: jest.fn(),
|
|
37
|
+
_editFlow: mock(InternalEditFlow)
|
|
38
|
+
};
|
|
39
|
+
return Object.assign(mock(PageController), objectPage);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
_exports.mockObjectPageController = mockObjectPageController;
|
|
43
|
+
|
|
44
|
+
function mockContextForExtension(extension, controller, base) {
|
|
45
|
+
var view = controller.getView();
|
|
46
|
+
|
|
47
|
+
extension.getView = function () {
|
|
48
|
+
return view;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var mockedBase = mock(base || {});
|
|
52
|
+
return Object.assign(mockedBase, extension);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_exports.mockContextForExtension = mockContextForExtension;
|
|
56
|
+
|
|
57
|
+
function mockFilterBar() {
|
|
58
|
+
var filterBar = mock(FilterBar);
|
|
59
|
+
filterBar.mock.initialized = jest.fn();
|
|
60
|
+
return filterBar;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
_exports.mockFilterBar = mockFilterBar;
|
|
64
|
+
return _exports;
|
|
65
|
+
}, false);
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlTW9ja3MudHMiXSwibmFtZXMiOlsibW9ja0xpc3RSZXBvcnRDb250cm9sbGVyIiwibGlzdFJlcG9ydCIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiamVzdCIsImZuIiwiX2dldENvbnRyb2xzIiwiX2lzRmlsdGVyQmFySGlkZGVuIiwiX2lzTXVsdGlNb2RlIiwiX3NldENvdW50c091dERhdGVkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9nZXRUYWJsZSIsImdldEV4dGVuc2lvbkFQSSIsIl9lZGl0RmxvdyIsIm1vY2siLCJJbnRlcm5hbEVkaXRGbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiUGFnZUNvbnRyb2xsZXIiLCJtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIiLCJvYmplY3RQYWdlIiwiZ2V0U3RpY2t5RWRpdE1vZGUiLCJtb2NrQ29udGV4dEZvckV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImNvbnRyb2xsZXIiLCJiYXNlIiwidmlldyIsImdldFZpZXciLCJtb2NrZWRCYXNlIiwibW9ja0ZpbHRlckJhciIsImZpbHRlckJhciIsIkZpbHRlckJhciIsImluaXRpYWxpemVkIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7O0FBMEJPLFdBQVNBLHdCQUFULEdBQTZIO0FBQ25JO0FBQ0EsUUFBTUMsVUFBMkUsR0FBRztBQUNuRkMsTUFBQUEsb0JBQW9CLEVBQUVDLElBQUksQ0FBQ0MsRUFBTCxFQUQ2RDtBQUVuRkMsTUFBQUEsWUFBWSxFQUFFRixJQUFJLENBQUNDLEVBQUwsRUFGcUU7QUFHbkZFLE1BQUFBLGtCQUFrQixFQUFFSCxJQUFJLENBQUNDLEVBQUwsRUFIK0Q7QUFJbkZHLE1BQUFBLFlBQVksRUFBRUosSUFBSSxDQUFDQyxFQUFMLEVBSnFFO0FBS25GSSxNQUFBQSxrQkFBa0IsRUFBRUwsSUFBSSxDQUFDQyxFQUFMLEVBTCtEO0FBTW5GSyxNQUFBQSxrQkFBa0IsRUFBRU4sSUFBSSxDQUFDQyxFQUFMLEVBTitEO0FBT25GTSxNQUFBQSxvQkFBb0IsRUFBRVAsSUFBSSxDQUFDQyxFQUFMLEVBUDZEO0FBUW5GTyxNQUFBQSx1QkFBdUIsRUFBRVIsSUFBSSxDQUFDQyxFQUFMLEVBUjBEO0FBU25GUSxNQUFBQSx3QkFBd0IsRUFBRVQsSUFBSSxDQUFDQyxFQUFMLEVBVHlEO0FBVW5GUyxNQUFBQSxTQUFTLEVBQUVWLElBQUksQ0FBQ0MsRUFBTCxFQVZ3RTtBQVduRlUsTUFBQUEsZUFBZSxFQUFFWCxJQUFJLENBQUNDLEVBQUwsRUFYa0U7QUFZbkZXLE1BQUFBLFNBQVMsRUFBRUMsSUFBSSxDQUFDQyxnQkFBRDtBQVpvRSxLQUFwRjtBQWNBLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxJQUFJLENBQUNJLGNBQUQsQ0FBbEIsRUFBb0NuQixVQUFwQyxDQUFQO0FBR0E7Ozs7QUFFTSxXQUFTb0Isd0JBQVQsR0FBNkg7QUFDbkk7QUFDQSxRQUFNQyxVQUEyRSxHQUFHO0FBQ25GQyxNQUFBQSxpQkFBaUIsRUFBRXBCLElBQUksQ0FBQ0MsRUFBTCxFQURnRTtBQUVuRlUsTUFBQUEsZUFBZSxFQUFFWCxJQUFJLENBQUNDLEVBQUwsRUFGa0U7QUFHbkZXLE1BQUFBLFNBQVMsRUFBRUMsSUFBSSxDQUFDQyxnQkFBRDtBQUhvRSxLQUFwRjtBQUtBLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxJQUFJLENBQUNJLGNBQUQsQ0FBbEIsRUFBb0NFLFVBQXBDLENBQVA7QUFHQTs7OztBQUVNLFdBQVNFLHVCQUFULENBQ05DLFNBRE0sRUFFTkMsVUFGTSxFQUdOQyxJQUhNLEVBSWlCO0FBQ3ZCLFFBQU1DLElBQUksR0FBR0YsVUFBVSxDQUFDRyxPQUFYLEVBQWI7O0FBQ0NKLElBQUFBLFNBQUQsQ0FBbUJJLE9BQW5CLEdBQTZCO0FBQUEsYUFBTUQsSUFBTjtBQUFBLEtBQTdCOztBQUNBLFFBQU1FLFVBQVUsR0FBR2QsSUFBSSxDQUFDVyxJQUFJLElBQUksRUFBVCxDQUF2QjtBQUNBLFdBQU9ULE1BQU0sQ0FBQ0MsTUFBUCxDQUFjVyxVQUFkLEVBQTBCTCxTQUExQixDQUFQO0FBQ0E7Ozs7QUFFTSxXQUFTTSxhQUFULEdBQXNHO0FBQzVHLFFBQU1DLFNBQVMsR0FBR2hCLElBQUksQ0FBQ2lCLFNBQUQsQ0FBdEI7QUFDQUQsSUFBQUEsU0FBUyxDQUFDaEIsSUFBVixDQUFla0IsV0FBZixHQUE2Qi9CLElBQUksQ0FBQ0MsRUFBTCxFQUE3QjtBQUNBLFdBQU80QixTQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IG1vY2ssIE1vY2tlZEluc3RhbmNlLCBXaXRoTW9jayB9IGZyb20gXCJAc2FwLXV4L2plc3QtbW9jay11aTUvZGlzdC9nZW5lcmljXCI7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVkaXRGbG93IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zXCI7XG5cbmludGVyZmFjZSBDb21tb25Db250cm9sbGVyVHlwZSB7XG5cdGdldEV4dGVuc2lvbkFQSTogYW55O1xuXHRfZWRpdEZsb3c6IFdpdGhNb2NrPEludGVybmFsRWRpdEZsb3c+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSB7XG5cdF9nZXRGaWx0ZXJCYXJDb250cm9sOiBhbnk7XG5cdF9nZXRDb250cm9sczogYW55O1xuXHRfaXNGaWx0ZXJCYXJIaWRkZW46IGFueTtcblx0X2lzTXVsdGlNb2RlOiBhbnk7XG5cdF9zZXRDb3VudHNPdXREYXRlZDogYW55O1xuXHRfZ2V0Q3VycmVudENvbnRyb2w6IGFueTtcblx0X2dldE11bHRpTW9kZUNvbnRyb2w6IGFueTtcblx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGFueTtcblx0X3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoOiBhbnk7XG5cdF9nZXRUYWJsZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSB7XG5cdGdldFN0aWNreUVkaXRNb2RlOiBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTGlzdFJlcG9ydENvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IGxpc3RSZXBvcnQ6IE1vY2tlZEluc3RhbmNlPExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRfZ2V0RmlsdGVyQmFyQ29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRDb250cm9sczogamVzdC5mbigpLFxuXHRcdF9pc0ZpbHRlckJhckhpZGRlbjogamVzdC5mbigpLFxuXHRcdF9pc011bHRpTW9kZTogamVzdC5mbigpLFxuXHRcdF9zZXRDb3VudHNPdXREYXRlZDogamVzdC5mbigpLFxuXHRcdF9nZXRDdXJyZW50Q29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRNdWx0aU1vZGVDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGplc3QuZm4oKSxcblx0XHRfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2g6IGplc3QuZm4oKSxcblx0XHRfZ2V0VGFibGU6IGplc3QuZm4oKSxcblx0XHRnZXRFeHRlbnNpb25BUEk6IGplc3QuZm4oKSxcblx0XHRfZWRpdEZsb3c6IG1vY2soSW50ZXJuYWxFZGl0RmxvdykgYXMgV2l0aE1vY2s8SW50ZXJuYWxFZGl0Rmxvdz5cblx0fTtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ24obW9jayhQYWdlQ29udHJvbGxlciksIGxpc3RSZXBvcnQpIGFzIFdpdGhNb2NrPFxuXHRcdENvbnRyb2xsZXIgJiBQYWdlQ29udHJvbGxlciAmIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlXG5cdD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IG9iamVjdFBhZ2U6IE1vY2tlZEluc3RhbmNlPE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRnZXRTdGlja3lFZGl0TW9kZTogamVzdC5mbigpLFxuXHRcdGdldEV4dGVuc2lvbkFQSTogamVzdC5mbigpLFxuXHRcdF9lZGl0RmxvdzogbW9jayhJbnRlcm5hbEVkaXRGbG93KSBhcyBXaXRoTW9jazxJbnRlcm5hbEVkaXRGbG93PlxuXHR9O1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrKFBhZ2VDb250cm9sbGVyKSwgb2JqZWN0UGFnZSkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb250ZXh0Rm9yRXh0ZW5zaW9uPEVYVCBleHRlbmRzIG9iamVjdCwgQkFTRSBleHRlbmRzIG9iamVjdD4oXG5cdGV4dGVuc2lvbjogRVhULFxuXHRjb250cm9sbGVyOiBXaXRoTW9jazxDb250cm9sbGVyPixcblx0YmFzZT86IEJBU0Vcbik6IFdpdGhNb2NrPEVYVCAmIEJBU0U+IHtcblx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHQoZXh0ZW5zaW9uIGFzIGFueSkuZ2V0VmlldyA9ICgpID0+IHZpZXc7XG5cdGNvbnN0IG1vY2tlZEJhc2UgPSBtb2NrKGJhc2UgfHwge30pO1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrZWRCYXNlLCBleHRlbnNpb24pIGFzIFdpdGhNb2NrPEVYVCAmIEJBU0U+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0ZpbHRlckJhcigpOiBXaXRoTW9jazxGaWx0ZXJCYXIgJiB7IGluaXRpYWxpemVkOiBGdW5jdGlvbjsgX2JTZWFyY2hUcmlnZ2VyZWQ6IEJvb2xlYW4gfT4ge1xuXHRjb25zdCBmaWx0ZXJCYXIgPSBtb2NrKEZpbHRlckJhcikgYXMgV2l0aE1vY2s8RmlsdGVyQmFyICYgeyBpbml0aWFsaXplZDogRnVuY3Rpb247IF9iU2VhcmNoVHJpZ2dlcmVkOiBCb29sZWFuIH0+O1xuXHRmaWx0ZXJCYXIubW9jay5pbml0aWFsaXplZCA9IGplc3QuZm4oKTtcblx0cmV0dXJuIGZpbHRlckJhcjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import PageController from "sap/fe/core/PageController";
|
|
2
|
+
import { mock, MockedInstance, WithMock } from "@sap-ux/jest-mock-ui5/dist/generic";
|
|
3
|
+
import Controller from "sap/ui/core/mvc/Controller";
|
|
4
|
+
import FilterBar from "sap/ui/mdc/FilterBar";
|
|
5
|
+
import { InternalEditFlow } from "sap/fe/core/controllerextensions";
|
|
6
|
+
|
|
7
|
+
interface CommonControllerType {
|
|
8
|
+
getExtensionAPI: any;
|
|
9
|
+
_editFlow: WithMock<InternalEditFlow>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ListReportControllerType {
|
|
13
|
+
_getFilterBarControl: any;
|
|
14
|
+
_getControls: any;
|
|
15
|
+
_isFilterBarHidden: any;
|
|
16
|
+
_isMultiMode: any;
|
|
17
|
+
_setCountsOutDated: any;
|
|
18
|
+
_getCurrentControl: any;
|
|
19
|
+
_getMultiModeControl: any;
|
|
20
|
+
_hasMultiVisualizations: any;
|
|
21
|
+
_shouldAutoTriggerSearch: any;
|
|
22
|
+
_getTable: any;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface ObjectPageControllerType {
|
|
26
|
+
getStickyEditMode: any;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function mockListReportController(): WithMock<Controller & PageController & ListReportControllerType & CommonControllerType> {
|
|
30
|
+
// manually add ListReportController.controller functions since I am unable to import the prototype
|
|
31
|
+
const listReport: MockedInstance<ListReportControllerType & CommonControllerType> = {
|
|
32
|
+
_getFilterBarControl: jest.fn(),
|
|
33
|
+
_getControls: jest.fn(),
|
|
34
|
+
_isFilterBarHidden: jest.fn(),
|
|
35
|
+
_isMultiMode: jest.fn(),
|
|
36
|
+
_setCountsOutDated: jest.fn(),
|
|
37
|
+
_getCurrentControl: jest.fn(),
|
|
38
|
+
_getMultiModeControl: jest.fn(),
|
|
39
|
+
_hasMultiVisualizations: jest.fn(),
|
|
40
|
+
_shouldAutoTriggerSearch: jest.fn(),
|
|
41
|
+
_getTable: jest.fn(),
|
|
42
|
+
getExtensionAPI: jest.fn(),
|
|
43
|
+
_editFlow: mock(InternalEditFlow) as WithMock<InternalEditFlow>
|
|
44
|
+
};
|
|
45
|
+
return Object.assign(mock(PageController), listReport) as WithMock<
|
|
46
|
+
Controller & PageController & ListReportControllerType & CommonControllerType
|
|
47
|
+
>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function mockObjectPageController(): WithMock<Controller & PageController & ObjectPageControllerType & CommonControllerType> {
|
|
51
|
+
// manually add ListReportController.controller functions since I am unable to import the prototype
|
|
52
|
+
const objectPage: MockedInstance<ObjectPageControllerType & CommonControllerType> = {
|
|
53
|
+
getStickyEditMode: jest.fn(),
|
|
54
|
+
getExtensionAPI: jest.fn(),
|
|
55
|
+
_editFlow: mock(InternalEditFlow) as WithMock<InternalEditFlow>
|
|
56
|
+
};
|
|
57
|
+
return Object.assign(mock(PageController), objectPage) as WithMock<
|
|
58
|
+
Controller & PageController & ObjectPageControllerType & CommonControllerType
|
|
59
|
+
>;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function mockContextForExtension<EXT extends object, BASE extends object>(
|
|
63
|
+
extension: EXT,
|
|
64
|
+
controller: WithMock<Controller>,
|
|
65
|
+
base?: BASE
|
|
66
|
+
): WithMock<EXT & BASE> {
|
|
67
|
+
const view = controller.getView();
|
|
68
|
+
(extension as any).getView = () => view;
|
|
69
|
+
const mockedBase = mock(base || {});
|
|
70
|
+
return Object.assign(mockedBase, extension) as WithMock<EXT & BASE>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function mockFilterBar(): WithMock<FilterBar & { initialized: Function; _bSearchTriggered: Boolean }> {
|
|
74
|
+
const filterBar = mock(FilterBar) as WithMock<FilterBar & { initialized: Function; _bSearchTriggered: Boolean }>;
|
|
75
|
+
filterBar.mock.initialized = jest.fn();
|
|
76
|
+
return filterBar;
|
|
77
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ! SAPUI5
|
|
3
|
-
|
|
2
|
+
* ! SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnitUtils"], function(Opa5, OpaBuilder, QUnitUtils) {
|
|
6
7
|
"use strict";
|
|
@@ -228,6 +229,17 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
|
|
|
228
229
|
.execute();
|
|
229
230
|
},
|
|
230
231
|
|
|
232
|
+
iExecutePopOverButtonByIcon: function(sIcon, sDescription) {
|
|
233
|
+
return OpaBuilder.create(this)
|
|
234
|
+
.viewId(null)
|
|
235
|
+
.hasType("sap.m.Button")
|
|
236
|
+
.hasProperties({ icon: "sap-icon://" + sIcon })
|
|
237
|
+
.isDialogElement()
|
|
238
|
+
.doPress()
|
|
239
|
+
.description(sDescription)
|
|
240
|
+
.execute();
|
|
241
|
+
},
|
|
242
|
+
|
|
231
243
|
iExecutePopOverActionRename: function(sId) {
|
|
232
244
|
return this.iExecutePopOverActionByIcon("edit", "Press rename on " + sId);
|
|
233
245
|
},
|
|
@@ -261,7 +273,7 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
|
|
|
261
273
|
},
|
|
262
274
|
|
|
263
275
|
iSwitchToGroupViewInTheFilterBarDialog: function() {
|
|
264
|
-
return this.
|
|
276
|
+
return this.iExecutePopOverButtonByIcon("group-2", "Switch to grouped view in filter bar dialog");
|
|
265
277
|
},
|
|
266
278
|
|
|
267
279
|
iSelectExpandFiltersgroupInTheFilterBarDialog: function(sFiltersgroupName) {
|
|
@@ -629,11 +641,11 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
|
|
|
629
641
|
},
|
|
630
642
|
|
|
631
643
|
iSeeTheVariantManagementPopover: function() {
|
|
632
|
-
return this.
|
|
644
|
+
return this.iSeeTheMenuItemByIcon("sap-icon://duplicate", "The Popover");
|
|
633
645
|
},
|
|
634
646
|
|
|
635
647
|
iSeeTheRTAPopover: function() {
|
|
636
|
-
return this.
|
|
648
|
+
return this.iSeeTheMenuItemByIcon("sap-icon://key-user-settings", "The RTAPopover");
|
|
637
649
|
},
|
|
638
650
|
|
|
639
651
|
iSeeTheRenameButton: function() {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* ! SAPUI5
|
|
3
|
-
|
|
2
|
+
* ! SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(["sap/base/util/merge", "./TemplatePage", "sap/ui/test/OpaBuilder", "sap/m/library"], function(
|
|
6
7
|
mergeObjects,
|