@sapui5/sap.fe.test 1.100.0 → 1.102.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 +2 -3
- package/src/sap/fe/test/.library +1 -1
- package/src/sap/fe/test/BaseArrangements.js +65 -18
- package/src/sap/fe/test/CollaborationClient.js +77 -0
- package/src/sap/fe/test/CollaborationClient.ts +105 -0
- package/src/sap/fe/test/FeMocks.js +3 -3
- package/src/sap/fe/test/FeMocks.ts +10 -6
- package/src/sap/fe/test/FlexibleColumnLayout.js +148 -141
- package/src/sap/fe/test/JestTemplatingHelper.js +31 -10
- package/src/sap/fe/test/JestTemplatingHelper.ts +62 -48
- package/src/sap/fe/test/ListReport.js +72 -77
- package/src/sap/fe/test/LocationUtil.js +12 -16
- package/src/sap/fe/test/ObjectPage.js +116 -124
- package/src/sap/fe/test/Shell.js +94 -34
- package/src/sap/fe/test/TemplatePage.js +49 -27
- package/src/sap/fe/test/UI5MockHelper.js +100 -20
- package/src/sap/fe/test/UI5MockHelper.ts +79 -14
- package/src/sap/fe/test/api/APIHelper.js +26 -15
- package/src/sap/fe/test/api/CollaborationAPI.js +215 -0
- package/src/sap/fe/test/api/CollaborationAPI.ts +240 -0
- package/src/sap/fe/test/api/DialogActions.js +3 -1
- package/src/sap/fe/test/api/DialogMessageActions.js +78 -64
- package/src/sap/fe/test/api/HeaderActions.js +229 -226
- package/src/sap/fe/test/api/HeaderAssertions.js +76 -41
- package/src/sap/fe/test/api/TableAPI.js +30 -34
- package/src/sap/fe/test/api/TableActions.js +58 -70
- package/src/sap/fe/test/api/TableAssertions.js +51 -46
- package/src/sap/fe/test/builder/MacroFieldBuilder.js +161 -153
- package/src/sap/fe/test/builder/MdcTableBuilder.js +247 -191
- package/src/sap/fe/test/library.js +26 -35
- package/src/sap/fe/test/library.ts +28 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapui5/sap.fe.test",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.102.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)",
|
|
@@ -22,8 +22,7 @@
|
|
|
22
22
|
"@ui5/cli": "^2.14.0",
|
|
23
23
|
"copyfiles": "2.2.0",
|
|
24
24
|
"mkdirp": "^1.0.4",
|
|
25
|
-
"xpath": "0.0.27",
|
|
26
25
|
"xml-formatter": "2.4.0",
|
|
27
|
-
"
|
|
26
|
+
"xpath": "0.0.27"
|
|
28
27
|
}
|
|
29
28
|
}
|
package/src/sap/fe/test/.library
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
sap.ui.define(
|
|
7
7
|
["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/thirdparty/jquery", "sap/base/util/UriParameters", "./Utils", "./Stubs"],
|
|
8
|
-
function(Opa5, OpaBuilder, jQuery, UriParameters, Utils, Stubs) {
|
|
8
|
+
function (Opa5, OpaBuilder, jQuery, UriParameters, Utils, Stubs) {
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -22,7 +22,7 @@ sap.ui.define(
|
|
|
22
22
|
* @public
|
|
23
23
|
*/
|
|
24
24
|
var BaseArrangements = Opa5.extend("sap.fe.test.BaseArrangements", {
|
|
25
|
-
constructor: function(mSettings) {
|
|
25
|
+
constructor: function (mSettings) {
|
|
26
26
|
Opa5.apply(this);
|
|
27
27
|
var oUriParams = new UriParameters(window.location.href),
|
|
28
28
|
mDefaultLaunchParameters = {
|
|
@@ -51,10 +51,10 @@ sap.ui.define(
|
|
|
51
51
|
* @name sap.fe.test.BaseArrangements#iStartMyApp
|
|
52
52
|
* @public
|
|
53
53
|
*/
|
|
54
|
-
iStartMyApp: function(sAppHash, mUrlParameters) {
|
|
54
|
+
iStartMyApp: function (sAppHash, mUrlParameters) {
|
|
55
55
|
var sLaunchUrl = this._mSettings.launchUrl,
|
|
56
56
|
mUrlParameters = Utils.mergeObjects(this._mSettings.launchParameters, mUrlParameters),
|
|
57
|
-
sUrlParameters = Object.keys(mUrlParameters).reduce(function(sCurrent, sKey) {
|
|
57
|
+
sUrlParameters = Object.keys(mUrlParameters).reduce(function (sCurrent, sKey) {
|
|
58
58
|
return sCurrent + "&" + sKey + "=" + mUrlParameters[sKey];
|
|
59
59
|
}, ""),
|
|
60
60
|
sStartupUrl = sLaunchUrl + (sUrlParameters ? "?" + sUrlParameters.substring(1) : "") + (sAppHash ? "#" + sAppHash : "");
|
|
@@ -66,7 +66,7 @@ sap.ui.define(
|
|
|
66
66
|
// (they are overridden in OPA by the iFrameLauncher)
|
|
67
67
|
// We also need to override the native confirm dialog, as it blocks the test
|
|
68
68
|
return OpaBuilder.create(this)
|
|
69
|
-
.success(function() {
|
|
69
|
+
.success(function () {
|
|
70
70
|
var oWindow = Opa5.getWindow();
|
|
71
71
|
|
|
72
72
|
Stubs.stubAll(oWindow);
|
|
@@ -87,9 +87,9 @@ sap.ui.define(
|
|
|
87
87
|
* @name sap.fe.test.BaseArrangements#resetTestData
|
|
88
88
|
* @protected
|
|
89
89
|
*/
|
|
90
|
-
resetTestData: function() {
|
|
90
|
+
resetTestData: function () {
|
|
91
91
|
function _deleteDatabase(sName) {
|
|
92
|
-
return new Promise(function(resolve, reject) {
|
|
92
|
+
return new Promise(function (resolve, reject) {
|
|
93
93
|
var oRequest = indexedDB.deleteDatabase(sName);
|
|
94
94
|
oRequest.onsuccess = resolve;
|
|
95
95
|
oRequest.onerror = reject;
|
|
@@ -102,9 +102,9 @@ sap.ui.define(
|
|
|
102
102
|
if (indexedDB) {
|
|
103
103
|
if (typeof indexedDB.databases === "function") {
|
|
104
104
|
// browser supports enumerating existing databases - wipe all.
|
|
105
|
-
return indexedDB.databases().then(function(aDatabases) {
|
|
105
|
+
return indexedDB.databases().then(function (aDatabases) {
|
|
106
106
|
return Promise.all(
|
|
107
|
-
aDatabases.map(function(oDatabase) {
|
|
107
|
+
aDatabases.map(function (oDatabase) {
|
|
108
108
|
return _deleteDatabase(oDatabase.name);
|
|
109
109
|
})
|
|
110
110
|
);
|
|
@@ -128,23 +128,23 @@ sap.ui.define(
|
|
|
128
128
|
* @name sap.fe.test.BaseArrangements#iResetTestData
|
|
129
129
|
* @public
|
|
130
130
|
*/
|
|
131
|
-
iResetTestData: function() {
|
|
131
|
+
iResetTestData: function () {
|
|
132
132
|
var that = this,
|
|
133
133
|
bSuccess = false;
|
|
134
134
|
|
|
135
135
|
return OpaBuilder.create(this)
|
|
136
|
-
.success(function() {
|
|
136
|
+
.success(function () {
|
|
137
137
|
//clear local storage so no flex change / variant management zombies exist
|
|
138
138
|
that.resetTestData()
|
|
139
|
-
.finally(function() {
|
|
139
|
+
.finally(function () {
|
|
140
140
|
bSuccess = true;
|
|
141
141
|
})
|
|
142
|
-
.catch(function(oError) {
|
|
142
|
+
.catch(function (oError) {
|
|
143
143
|
throw oError;
|
|
144
144
|
});
|
|
145
145
|
|
|
146
146
|
return OpaBuilder.create(this)
|
|
147
|
-
.check(function() {
|
|
147
|
+
.check(function () {
|
|
148
148
|
return bSuccess;
|
|
149
149
|
})
|
|
150
150
|
.execute();
|
|
@@ -153,6 +153,53 @@ sap.ui.define(
|
|
|
153
153
|
.execute();
|
|
154
154
|
},
|
|
155
155
|
|
|
156
|
+
/**
|
|
157
|
+
* Resets the mock data.
|
|
158
|
+
*
|
|
159
|
+
* @param {object} [oAppInfo] The application id or a uri pointing to the service. One of the following properties needs to be provided within the parameter:
|
|
160
|
+
* <code><pre>
|
|
161
|
+
* {
|
|
162
|
+
* <ServiceUri>: <uri of the service like listed in the manifest (sap.app.dataSources.mainService.uri)>
|
|
163
|
+
* <AppId>: <application id like listed in the manifest (sap.app.id)>
|
|
164
|
+
* }
|
|
165
|
+
* </pre></code>
|
|
166
|
+
* NOTE: When passing the AppId, the application needs to be running already. Calling the function before the application is started can be done by passing the ServiceUri.
|
|
167
|
+
*
|
|
168
|
+
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
169
|
+
*
|
|
170
|
+
* @function
|
|
171
|
+
* @name sap.fe.test.BaseArrangements#iResetMockData
|
|
172
|
+
* @public
|
|
173
|
+
*/
|
|
174
|
+
iResetMockData: function (oAppInfo) {
|
|
175
|
+
var bSuccess = false;
|
|
176
|
+
return OpaBuilder.create(this)
|
|
177
|
+
.success(function () {
|
|
178
|
+
var sServiceUri = oAppInfo.AppId
|
|
179
|
+
? Opa5.getWindow()[oAppInfo.AppId].Component.getMetadata().getManifest()["sap.app"]["dataSources"][
|
|
180
|
+
"mainService"
|
|
181
|
+
]["uri"]
|
|
182
|
+
: oAppInfo.ServiceUri,
|
|
183
|
+
oReloadMockData = jQuery.post(sServiceUri + "\\$metadata/reload");
|
|
184
|
+
|
|
185
|
+
Promise.all([oReloadMockData])
|
|
186
|
+
.finally(function () {
|
|
187
|
+
bSuccess = true;
|
|
188
|
+
})
|
|
189
|
+
.catch(function (oError) {
|
|
190
|
+
throw oError;
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
return OpaBuilder.create(this)
|
|
194
|
+
.check(function () {
|
|
195
|
+
return bSuccess;
|
|
196
|
+
})
|
|
197
|
+
.execute();
|
|
198
|
+
})
|
|
199
|
+
.description(Utils.formatMessage("Resetting mock data"))
|
|
200
|
+
.execute();
|
|
201
|
+
},
|
|
202
|
+
|
|
156
203
|
/**
|
|
157
204
|
* Tears down the current application.
|
|
158
205
|
*
|
|
@@ -162,9 +209,9 @@ sap.ui.define(
|
|
|
162
209
|
* @name sap.fe.test.BaseArrangements#iTearDownMyApp
|
|
163
210
|
* @public
|
|
164
211
|
*/
|
|
165
|
-
iTearDownMyApp: function() {
|
|
212
|
+
iTearDownMyApp: function () {
|
|
166
213
|
return OpaBuilder.create(this)
|
|
167
|
-
.do(function() {
|
|
214
|
+
.do(function () {
|
|
168
215
|
var oWindow = Opa5.getWindow();
|
|
169
216
|
Stubs.restoreAll(oWindow);
|
|
170
217
|
})
|
|
@@ -182,10 +229,10 @@ sap.ui.define(
|
|
|
182
229
|
* @name sap.fe.test.BaseArrangements#iRestartMyApp
|
|
183
230
|
* @public
|
|
184
231
|
*/
|
|
185
|
-
iRestartMyApp: function() {
|
|
232
|
+
iRestartMyApp: function () {
|
|
186
233
|
var that = this;
|
|
187
234
|
return OpaBuilder.create(this)
|
|
188
|
-
.success(function() {
|
|
235
|
+
.success(function () {
|
|
189
236
|
var sCurrentHash = Opa5.getWindow().location.hash.substring(1);
|
|
190
237
|
return that.iTearDownMyApp().and.iStartMyApp(sCurrentHash);
|
|
191
238
|
})
|
|
@@ -0,0 +1,77 @@
|
|
|
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/controllerextensions/collaboration/CollaborationCommon", "sap/fe/test/api/CollaborationAPI", "sap/ui/test/OpaBuilder"], function (CollaborationCommon, CollaborationAPI, OpaBuilder) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var Activity = CollaborationCommon.Activity;
|
|
9
|
+
|
|
10
|
+
function CollaborationClient(oPageDefinition) {
|
|
11
|
+
var sAppId = oPageDefinition.appId,
|
|
12
|
+
sComponentId = oPageDefinition.componentId,
|
|
13
|
+
viewId = sAppId + "::" + sComponentId;
|
|
14
|
+
return {
|
|
15
|
+
actions: {
|
|
16
|
+
iEnterDraft: function (userID, userName) {
|
|
17
|
+
return OpaBuilder.create(this).hasId(viewId).do(function (view) {
|
|
18
|
+
var oContext = view.getBindingContext();
|
|
19
|
+
CollaborationAPI.enterDraft(oContext, userID, userName);
|
|
20
|
+
}).viewId("").description("Remote session entering draft").execute();
|
|
21
|
+
},
|
|
22
|
+
iLeaveDraft: function () {
|
|
23
|
+
return OpaBuilder.create(this).do(function () {
|
|
24
|
+
CollaborationAPI.leaveDraft();
|
|
25
|
+
}).description("Remote session leaving draft").execute();
|
|
26
|
+
},
|
|
27
|
+
iLockPropertyForEdition: function (sPropertyPath) {
|
|
28
|
+
return OpaBuilder.create(this).do(function () {
|
|
29
|
+
CollaborationAPI.startLiveChange(sPropertyPath);
|
|
30
|
+
}).description("Remote session locking property " + sPropertyPath).execute();
|
|
31
|
+
},
|
|
32
|
+
iUnlockPropertyForEdition: function () {
|
|
33
|
+
return OpaBuilder.create(this).do(function () {
|
|
34
|
+
CollaborationAPI.undoChange();
|
|
35
|
+
}).description("Remote session unlocking property ").execute();
|
|
36
|
+
},
|
|
37
|
+
iUpdatePropertyValue: function (sPropertyPath, value) {
|
|
38
|
+
return OpaBuilder.create(this).do(function () {
|
|
39
|
+
CollaborationAPI.updatePropertyValue(sPropertyPath, value);
|
|
40
|
+
}).description("Remote session updating property " + sPropertyPath + " with " + value).execute();
|
|
41
|
+
},
|
|
42
|
+
iDiscardDraft: function () {
|
|
43
|
+
return OpaBuilder.create(this).do(function () {
|
|
44
|
+
CollaborationAPI.discardDraft();
|
|
45
|
+
}).description("Remote session discarding draft").execute();
|
|
46
|
+
},
|
|
47
|
+
iDeleteDraft: function () {
|
|
48
|
+
return OpaBuilder.create(this).do(function () {
|
|
49
|
+
CollaborationAPI.deleteDraft();
|
|
50
|
+
}).description("Remote session deleting draft").execute();
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
assertions: {
|
|
54
|
+
iCheckDefaultUserChangedValue: function (sPropertyPath) {
|
|
55
|
+
return OpaBuilder.create(this).check(function () {
|
|
56
|
+
return CollaborationAPI.checkReceived({
|
|
57
|
+
userID: "DEFAULT_USER",
|
|
58
|
+
userAction: Activity.Change,
|
|
59
|
+
clientContent: sPropertyPath
|
|
60
|
+
});
|
|
61
|
+
}).description("Remote session received change notification for" + sPropertyPath + " changed").execute();
|
|
62
|
+
},
|
|
63
|
+
iCheckDefaultUserLeftDraft: function () {
|
|
64
|
+
return OpaBuilder.create(this).check(function () {
|
|
65
|
+
return CollaborationAPI.checkReceived({
|
|
66
|
+
userID: "DEFAULT_USER",
|
|
67
|
+
userAction: Activity.Leave
|
|
68
|
+
});
|
|
69
|
+
}).description("Remote session received notification on default user leaving the draft session").execute();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return CollaborationClient;
|
|
76
|
+
}, false);
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25DbGllbnQudHMiXSwibmFtZXMiOlsiQ29sbGFib3JhdGlvbkNsaWVudCIsIm9QYWdlRGVmaW5pdGlvbiIsInNBcHBJZCIsImFwcElkIiwic0NvbXBvbmVudElkIiwiY29tcG9uZW50SWQiLCJ2aWV3SWQiLCJhY3Rpb25zIiwiaUVudGVyRHJhZnQiLCJ1c2VySUQiLCJ1c2VyTmFtZSIsIk9wYUJ1aWxkZXIiLCJjcmVhdGUiLCJoYXNJZCIsImRvIiwidmlldyIsIm9Db250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJDb2xsYWJvcmF0aW9uQVBJIiwiZW50ZXJEcmFmdCIsImRlc2NyaXB0aW9uIiwiZXhlY3V0ZSIsImlMZWF2ZURyYWZ0IiwibGVhdmVEcmFmdCIsImlMb2NrUHJvcGVydHlGb3JFZGl0aW9uIiwic1Byb3BlcnR5UGF0aCIsInN0YXJ0TGl2ZUNoYW5nZSIsImlVbmxvY2tQcm9wZXJ0eUZvckVkaXRpb24iLCJ1bmRvQ2hhbmdlIiwiaVVwZGF0ZVByb3BlcnR5VmFsdWUiLCJ2YWx1ZSIsInVwZGF0ZVByb3BlcnR5VmFsdWUiLCJpRGlzY2FyZERyYWZ0IiwiZGlzY2FyZERyYWZ0IiwiaURlbGV0ZURyYWZ0IiwiZGVsZXRlRHJhZnQiLCJhc3NlcnRpb25zIiwiaUNoZWNrRGVmYXVsdFVzZXJDaGFuZ2VkVmFsdWUiLCJjaGVjayIsImNoZWNrUmVjZWl2ZWQiLCJ1c2VyQWN0aW9uIiwiQWN0aXZpdHkiLCJDaGFuZ2UiLCJjbGllbnRDb250ZW50IiwiaUNoZWNrRGVmYXVsdFVzZXJMZWZ0RHJhZnQiLCJMZWF2ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBR0EsV0FBU0EsbUJBQVQsQ0FBNkJDLGVBQTdCLEVBQXNGO0FBQ3JGLFFBQU1DLE1BQU0sR0FBR0QsZUFBZSxDQUFDRSxLQUEvQjtBQUFBLFFBQ0NDLFlBQVksR0FBR0gsZUFBZSxDQUFDSSxXQURoQztBQUFBLFFBRUNDLE1BQU0sR0FBR0osTUFBTSxH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RSxjQUQ2QjtBQUVyQytCLGNBQUFBLFVBQVUsRUFBRUMsUUFBUSxDQUFDQyxNQUZnQjtBQUdyQ0MsY0FBQUEsYUFBYSxFQUFFbEI7QUFIc0IsYUFBL0IsQ0FBUDtBQUtBLFdBUEssRUFRTEwsV0FSSyxDQVFPLG9EQUFvREssYUFBcEQsR0FBb0UsVUFSM0UsRUFTTEosT0FUSyxFQUFQO0FBVUEsU0FaVTtBQWNYdUIsUUFBQUEsMEJBQTBCLEVBQUUsWUFBWTtBQUN2QyxpQkFBT2pDLFVBQVUsQ0FBQ0MsTUFBWCxDQUFrQixJQUFsQixFQUNMMEIsS0FESyxDQUNDLFlBQVk7QUFDbEIsbUJBQU9wQixnQkFBZ0IsQ0FBQ3FCLGFBQWpCLENBQStCO0FBQUU5QixjQUFBQSxNQUFNLEVBQUUsY0FBVjtBQUEwQitCLGNBQUFBLFVBQVUsRUFBRUMsUUFBUSxDQUFDSTtBQUEvQyxhQUEvQixDQUFQO0FBQ0EsV0FISyxFQUlMekIsV0FKSyxDQUlPLGdGQUpQLEVBS0xDLE9BTEssRUFBUDtBQU1BO0FBckJVO0FBcEVOLEtBQVA7QUE0RkE7O1NBRWNyQixtQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgQ29sbGFib3JhdGlvbkFQSSBmcm9tIFwic2FwL2ZlL3Rlc3QvYXBpL0NvbGxhYm9yYXRpb25BUElcIjtcbmltcG9ydCBPcGE1IGZyb20gXCJzYXAvdWkvdGVzdC9PcGE1XCI7XG5pbXBvcnQgT3BhQnVpbGRlciBmcm9tIFwic2FwL3VpL3Rlc3QvT3BhQnVpbGRlclwiO1xuXG5mdW5jdGlvbiBDb2xsYWJvcmF0aW9uQ2xpZW50KG9QYWdlRGVmaW5pdGlvbjogeyBhcHBJZDogc3RyaW5nOyBjb21wb25lbnRJZDogc3RyaW5nIH0pIHtcblx0Y29uc3Qgc0FwcElkID0gb1BhZ2VEZWZpbml0aW9uLmFwcElkLFxuXHRcdHNDb21wb25lbnRJZCA9IG9QYWdlRGVmaW5pdGlvbi5jb21wb25lbnRJZCxcblx0XHR2aWV3SWQgPSBzQXBwSWQgKyBcIjo6XCIgKyBzQ29tcG9uZW50SWQ7XG5cblx0cmV0dXJuIHtcblx0XHRhY3Rpb25zOiB7XG5cdFx0XHRpRW50ZXJEcmFmdDogZnVuY3Rpb24gKHVzZXJJRDogc3RyaW5nLCB1c2VyTmFtZTogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBPcGFCdWlsZGVyLmNyZWF0ZSh0aGlzIGFzIGFueSBhcyBPcGE1KVxuXHRcdFx0XHRcdC5oYXNJZCh2aWV3SWQpXG5cdFx0XHRcdFx0LmRvKGZ1bmN0aW9uICh2aWV3OiBhbnkpIHtcblx0XHRcdFx0XHRcdGNvbnN0IG9Db250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdFx0XHRcdFx0Q29sbGFib3JhdGlvbkFQSS5lbnRlckRyYWZ0KG9Db250ZXh0LCB1c2VySUQsIHVzZXJOYW1lKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC52aWV3SWQoXCJcIilcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oXCJSZW1vdGUgc2Vzc2lvbiBlbnRlcmluZyBkcmFmdFwiKVxuXHRcdFx0XHRcdC5leGVjdXRlKCk7XG5cdFx0XHR9LFxuXG5cdFx0XHRpTGVhdmVEcmFmdDogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gT3BhQnVpbGRlci5jcmVhdGUodGhpcyBhcyBhbnkgYXMgT3BhNSlcblx0XHRcdFx0XHQuZG8oZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0Q29sbGFib3JhdGlvbkFQSS5sZWF2ZURyYWZ0KCk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oXCJSZW1vdGUgc2Vzc2lvbiBsZWF2aW5nIGRyYWZ0XCIpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH0sXG5cblx0XHRcdGlMb2NrUHJvcGVydHlGb3JFZGl0aW9uOiBmdW5jdGlvbiAoc1Byb3BlcnR5UGF0aDogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBPcGFCdWlsZGVyLmNyZWF0ZSh0aGlzIGFzIGFueSBhcyBPcGE1KVxuXHRcdFx0XHRcdC5kbyhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRDb2xsYWJvcmF0aW9uQVBJLnN0YXJ0TGl2ZUNoYW5nZShzUHJvcGVydHlQYXRoKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5kZXNjcmlwdGlvbihcIlJlbW90ZSBzZXNzaW9uIGxvY2tpbmcgcHJvcGVydHkgXCIgKyBzUHJvcGVydHlQYXRoKVxuXHRcdFx0XHRcdC5leGVjdXRlKCk7XG5cdFx0XHR9LFxuXG5cdFx0XHRpVW5sb2NrUHJvcGVydHlGb3JFZGl0aW9uOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHJldHVybiBPcGFCdWlsZGVyLmNyZWF0ZSh0aGlzIGFzIGFueSBhcyBPcGE1KVxuXHRcdFx0XHRcdC5kbyhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRDb2xsYWJvcmF0aW9uQVBJLnVuZG9DaGFuZ2UoKTtcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdC5kZXNjcmlwdGlvbihcIlJlbW90ZSBzZXNzaW9uIHVubG9ja2luZyBwcm9wZXJ0eSBcIilcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fSxcblxuXHRcdFx0aVVwZGF0ZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmRvKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdENvbGxhYm9yYXRpb25BUEkudXBkYXRlUHJvcGVydHlWYWx1ZShzUHJvcGVydHlQYXRoLCB2YWx1ZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oXCJSZW1vdGUgc2Vzc2lvbiB1cGRhdGluZyBwcm9wZXJ0eSBcIiArIHNQcm9wZXJ0eVBhdGggKyBcIiB3aXRoIFwiICsgdmFsdWUpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH0sXG5cblx0XHRcdGlEaXNjYXJkRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmRvKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdENvbGxhYm9yYXRpb25BUEkuZGlzY2FyZERyYWZ0KCk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oXCJSZW1vdGUgc2Vzc2lvbiBkaXNjYXJkaW5nIGRyYWZ0XCIpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH0sXG5cblx0XHRcdGlEZWxldGVEcmFmdDogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gT3BhQnVpbGRlci5jcmVhdGUodGhpcyBhcyBhbnkgYXMgT3BhNSlcblx0XHRcdFx0XHQuZG8oZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0Q29sbGFib3JhdGlvbkFQSS5kZWxldGVEcmFmdCgpO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmRlc2NyaXB0aW9uKFwiUmVtb3RlIHNlc3Npb24gZGVsZXRpbmcgZHJhZnRcIilcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0YXNzZXJ0aW9uczoge1xuXHRcdFx0aUNoZWNrRGVmYXVsdFVzZXJDaGFuZ2VkVmFsdWU6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmNoZWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiBDb2xsYWJvcmF0aW9uQVBJLmNoZWNrUmVjZWl2ZWQoe1xuXHRcdFx0XHRcdFx0XHR1c2VySUQ6IFwiREVGQVVMVF9VU0VSXCIsXG5cdFx0XHRcdFx0XHRcdHVzZXJBY3Rpb246IEFjdGl2aXR5LkNoYW5nZSxcblx0XHRcdFx0XHRcdFx0Y2xpZW50Q29udGVudDogc1Byb3BlcnR5UGF0aFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuZGVzY3JpcHRpb24oXCJSZW1vdGUgc2Vzc2lvbiByZWNlaXZlZCBjaGFuZ2Ugbm90aWZpY2F0aW9uIGZvclwiICsgc1Byb3BlcnR5UGF0aCArIFwiIGNoYW5nZWRcIilcblx0XHRcdFx0XHQuZXhlY3V0ZSgpO1xuXHRcdFx0fSxcblxuXHRcdFx0aUNoZWNrRGVmYXVsdFVzZXJMZWZ0RHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIE9wYUJ1aWxkZXIuY3JlYXRlKHRoaXMgYXMgYW55IGFzIE9wYTUpXG5cdFx0XHRcdFx0LmNoZWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiBDb2xsYWJvcmF0aW9uQVBJLmNoZWNrUmVjZWl2ZWQoeyB1c2VySUQ6IFwiREVGQVVMVF9VU0VSXCIsIHVzZXJBY3Rpb246IEFjdGl2aXR5LkxlYXZlIH0pO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmRlc2NyaXB0aW9uKFwiUmVtb3RlIHNlc3Npb24gcmVjZWl2ZWQgbm90aWZpY2F0aW9uIG9uIGRlZmF1bHQgdXNlciBsZWF2aW5nIHRoZSBkcmFmdCBzZXNzaW9uXCIpXG5cdFx0XHRcdFx0LmV4ZWN1dGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhYm9yYXRpb25DbGllbnQ7XG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Activity } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
2
|
+
import CollaborationAPI from "sap/fe/test/api/CollaborationAPI";
|
|
3
|
+
import Opa5 from "sap/ui/test/Opa5";
|
|
4
|
+
import OpaBuilder from "sap/ui/test/OpaBuilder";
|
|
5
|
+
|
|
6
|
+
function CollaborationClient(oPageDefinition: { appId: string; componentId: string }) {
|
|
7
|
+
const sAppId = oPageDefinition.appId,
|
|
8
|
+
sComponentId = oPageDefinition.componentId,
|
|
9
|
+
viewId = sAppId + "::" + sComponentId;
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
actions: {
|
|
13
|
+
iEnterDraft: function (userID: string, userName: string) {
|
|
14
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
15
|
+
.hasId(viewId)
|
|
16
|
+
.do(function (view: any) {
|
|
17
|
+
const oContext = view.getBindingContext();
|
|
18
|
+
CollaborationAPI.enterDraft(oContext, userID, userName);
|
|
19
|
+
})
|
|
20
|
+
.viewId("")
|
|
21
|
+
.description("Remote session entering draft")
|
|
22
|
+
.execute();
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
iLeaveDraft: function () {
|
|
26
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
27
|
+
.do(function () {
|
|
28
|
+
CollaborationAPI.leaveDraft();
|
|
29
|
+
})
|
|
30
|
+
.description("Remote session leaving draft")
|
|
31
|
+
.execute();
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
iLockPropertyForEdition: function (sPropertyPath: string) {
|
|
35
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
36
|
+
.do(function () {
|
|
37
|
+
CollaborationAPI.startLiveChange(sPropertyPath);
|
|
38
|
+
})
|
|
39
|
+
.description("Remote session locking property " + sPropertyPath)
|
|
40
|
+
.execute();
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
iUnlockPropertyForEdition: function () {
|
|
44
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
45
|
+
.do(function () {
|
|
46
|
+
CollaborationAPI.undoChange();
|
|
47
|
+
})
|
|
48
|
+
.description("Remote session unlocking property ")
|
|
49
|
+
.execute();
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
iUpdatePropertyValue: function (sPropertyPath: string, value: any) {
|
|
53
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
54
|
+
.do(function () {
|
|
55
|
+
CollaborationAPI.updatePropertyValue(sPropertyPath, value);
|
|
56
|
+
})
|
|
57
|
+
.description("Remote session updating property " + sPropertyPath + " with " + value)
|
|
58
|
+
.execute();
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
iDiscardDraft: function () {
|
|
62
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
63
|
+
.do(function () {
|
|
64
|
+
CollaborationAPI.discardDraft();
|
|
65
|
+
})
|
|
66
|
+
.description("Remote session discarding draft")
|
|
67
|
+
.execute();
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
iDeleteDraft: function () {
|
|
71
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
72
|
+
.do(function () {
|
|
73
|
+
CollaborationAPI.deleteDraft();
|
|
74
|
+
})
|
|
75
|
+
.description("Remote session deleting draft")
|
|
76
|
+
.execute();
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
assertions: {
|
|
80
|
+
iCheckDefaultUserChangedValue: function (sPropertyPath: string) {
|
|
81
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
82
|
+
.check(function () {
|
|
83
|
+
return CollaborationAPI.checkReceived({
|
|
84
|
+
userID: "DEFAULT_USER",
|
|
85
|
+
userAction: Activity.Change,
|
|
86
|
+
clientContent: sPropertyPath
|
|
87
|
+
});
|
|
88
|
+
})
|
|
89
|
+
.description("Remote session received change notification for" + sPropertyPath + " changed")
|
|
90
|
+
.execute();
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
iCheckDefaultUserLeftDraft: function () {
|
|
94
|
+
return OpaBuilder.create(this as any as Opa5)
|
|
95
|
+
.check(function () {
|
|
96
|
+
return CollaborationAPI.checkReceived({ userID: "DEFAULT_USER", userAction: Activity.Leave });
|
|
97
|
+
})
|
|
98
|
+
.description("Remote session received notification on default user leaving the draft session")
|
|
99
|
+
.execute();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export default CollaborationClient;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["
|
|
5
|
+
sap.ui.define(["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerextensions/InternalEditFlow", "sap/fe/core/PageController", "sap/ui/mdc/FilterBar"], function (generic, InternalEditFlow, PageController, FilterBar) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -56,11 +56,11 @@ sap.ui.define(["sap/fe/core/PageController", "@sap-ux/jest-mock-ui5/dist/generic
|
|
|
56
56
|
|
|
57
57
|
function mockFilterBar() {
|
|
58
58
|
var filterBar = mock(FilterBar);
|
|
59
|
-
filterBar.mock.
|
|
59
|
+
filterBar.mock.waitForInitialization = jest.fn();
|
|
60
60
|
return filterBar;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
_exports.mockFilterBar = mockFilterBar;
|
|
64
64
|
return _exports;
|
|
65
65
|
}, false);
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlTW9ja3MudHMiXSwibmFtZXMiOlsibW9ja0xpc3RSZXBvcnRDb250cm9sbGVyIiwibGlzdFJlcG9ydCIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiamVzdCIsImZuIiwiX2dldENvbnRyb2xzIiwiX2lzRmlsdGVyQmFySGlkZGVuIiwiX2lzTXVsdGlNb2RlIiwiX3NldENvdW50c091dERhdGVkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9nZXRUYWJsZSIsImdldEV4dGVuc2lvbkFQSSIsIl9lZGl0RmxvdyIsIm1vY2siLCJJbnRlcm5hbEVkaXRGbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiUGFnZUNvbnRyb2xsZXIiLCJtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIiLCJvYmplY3RQYWdlIiwiZ2V0U3RpY2t5RWRpdE1vZGUiLCJtb2NrQ29udGV4dEZvckV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImNvbnRyb2xsZXIiLCJiYXNlIiwidmlldyIsImdldFZpZXciLCJtb2NrZWRCYXNlIiwibW9ja0ZpbHRlckJhciIsImZpbHRlckJhciIsIkZpbHRlckJhciIsIndhaXRGb3JJbml0aWFsaXphdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQTBCTyxXQUFTQSx3QkFBVCxHQUE2SDtBQUNuSTtBQUNBLFFBQU1DLFVBQTJFLEdBQUc7QUFDbkZDLE1BQUFBLG9CQUFvQixFQUFFQyxJQUFJLENBQUNDLEVBQUwsRUFENkQ7QUFFbkZDLE1BQUFBLFlBQVksRUFBRUYsSUFBSSxDQUFDQyxFQUFMLEVBRnFFO0FBR25GRSxNQUFBQSxrQkFBa0IsRUFBRUgsSUFBSSxDQUFDQyxFQUFMLEVBSCtEO0FBSW5GRyxNQUFBQSxZQUFZLEVBQUVKLElBQUksQ0FBQ0MsRUFBTCxFQUpxRTtBQUtuRkksTUFBQUEsa0JBQWtCLEVBQUVMLElBQUksQ0FBQ0MsRUFBTCxFQUwrRDtBQU1uRkssTUFBQUEsa0JBQWtCLEVBQUVOLElBQUksQ0FBQ0MsRUFBTCxFQU4rRDtBQU9uRk0sTUFBQUEsb0JBQW9CLEVBQUVQLElBQUksQ0FBQ0MsRUFBTCxFQVA2RDtBQVFuRk8sTUFBQUEsdUJBQXVCLEVBQUVSLElBQUksQ0FBQ0MsRUFBTCxFQVIwRDtBQVNuRlEsTUFBQUEsd0JBQXdCLEVBQUVULElBQUksQ0FBQ0MsRUFBTCxFQVR5RDtBQVVuRlMsTUFBQUEsU0FBUyxFQUFFVixJQUFJLENBQUNDLEVBQUwsRUFWd0U7QUFXbkZVLE1BQUFBLGVBQWUsRUFBRVgsSUFBSSxDQUFDQyxFQUFMLEVBWGtFO0FBWW5GVyxNQUFBQSxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsZ0JBQUQ7QUFab0UsS0FBcEY7QUFjQSxXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsSUFBSSxDQUFDSSxjQUFELENBQWxCLEVBQTJDbkIsVUFBM0MsQ0FBUDtBQUdBOzs7O0FBRU0sV0FBU29CLHdCQUFULEdBQTZIO0FBQ25JO0FBQ0EsUUFBTUMsVUFBMkUsR0FBRztBQUNuRkMsTUFBQUEsaUJBQWlCLEVBQUVwQixJQUFJLENBQUNDLEVBQUwsRUFEZ0U7QUFFbkZVLE1BQUFBLGVBQWUsRUFBRVgsSUFBSSxDQUFDQyxFQUFMLEVBRmtFO0FBR25GVyxNQUFBQSxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsZ0JBQUQ7QUFIb0UsS0FBcEY7QUFLQSxXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0gsSUFBSSxDQUFDSSxjQUFELENBQWxCLEVBQTJDRSxVQUEzQyxDQUFQO0FBR0E7Ozs7QUFFTSxXQUFTRSx1QkFBVCxDQUNOQyxTQURNLEVBRU5DLFVBRk0sRUFHTkMsSUFITSxFQUlrQztBQUN4QyxRQUFNQyxJQUFJLEdBQUdGLFVBQVUsQ0FBQ0csT0FBWCxFQUFiOztBQUNDSixJQUFBQSxTQUFELENBQW1CSSxPQUFuQixHQUE2QjtBQUFBLGFBQU1ELElBQU47QUFBQSxLQUE3Qjs7QUFDQSxRQUFNRSxVQUFVLEdBQUdkLElBQUksQ0FBQ1csSUFBSSxJQUFJLEVBQVQsQ0FBdkI7QUFDQSxXQUFPVCxNQUFNLENBQUNDLE1BQVAsQ0FBY1csVUFBZCxFQUEwQkwsU0FBMUIsQ0FBUDtBQUNBOzs7O0FBRU0sV0FBU00sYUFBVCxHQUVMO0FBQ0QsUUFBTUMsU0FBUyxHQUFHaEIsSUFBSSxDQUFDaUIsU0FBRCxDQUF0QjtBQUdBRCxJQUFBQSxTQUFTLENBQUNoQixJQUFWLENBQWVrQixxQkFBZixHQUF1Qy9CLElBQUksQ0FBQ0MsRUFBTCxFQUF2QztBQUNBLFdBQU80QixTQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vY2ssIE1vY2tlZEluc3RhbmNlLCBVSTVJbnN0YW5jZVR5cGUsIFdpdGhNb2NrIH0gZnJvbSBcIkBzYXAtdXgvamVzdC1tb2NrLXVpNS9kaXN0L2dlbmVyaWNcIjtcbmltcG9ydCBJbnRlcm5hbEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbEVkaXRGbG93XCI7XG5pbXBvcnQgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5cbmludGVyZmFjZSBDb21tb25Db250cm9sbGVyVHlwZSB7XG5cdGdldEV4dGVuc2lvbkFQSTogYW55O1xuXHRfZWRpdEZsb3c6IFdpdGhNb2NrPEludGVybmFsRWRpdEZsb3c+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSB7XG5cdF9nZXRGaWx0ZXJCYXJDb250cm9sOiBhbnk7XG5cdF9nZXRDb250cm9sczogYW55O1xuXHRfaXNGaWx0ZXJCYXJIaWRkZW46IGFueTtcblx0X2lzTXVsdGlNb2RlOiBhbnk7XG5cdF9zZXRDb3VudHNPdXREYXRlZDogYW55O1xuXHRfZ2V0Q3VycmVudENvbnRyb2w6IGFueTtcblx0X2dldE11bHRpTW9kZUNvbnRyb2w6IGFueTtcblx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGFueTtcblx0X3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoOiBhbnk7XG5cdF9nZXRUYWJsZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSB7XG5cdGdldFN0aWNreUVkaXRNb2RlOiBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTGlzdFJlcG9ydENvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IGxpc3RSZXBvcnQ6IE1vY2tlZEluc3RhbmNlPExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRfZ2V0RmlsdGVyQmFyQ29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRDb250cm9sczogamVzdC5mbigpLFxuXHRcdF9pc0ZpbHRlckJhckhpZGRlbjogamVzdC5mbigpLFxuXHRcdF9pc011bHRpTW9kZTogamVzdC5mbigpLFxuXHRcdF9zZXRDb3VudHNPdXREYXRlZDogamVzdC5mbigpLFxuXHRcdF9nZXRDdXJyZW50Q29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRNdWx0aU1vZGVDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGplc3QuZm4oKSxcblx0XHRfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2g6IGplc3QuZm4oKSxcblx0XHRfZ2V0VGFibGU6IGplc3QuZm4oKSxcblx0XHRnZXRFeHRlbnNpb25BUEk6IGplc3QuZm4oKSxcblx0XHRfZWRpdEZsb3c6IG1vY2soSW50ZXJuYWxFZGl0RmxvdykgYXMgYW55XG5cdH07XG5cdHJldHVybiBPYmplY3QuYXNzaWduKG1vY2soUGFnZUNvbnRyb2xsZXIpIGFzIGFueSwgbGlzdFJlcG9ydCkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tPYmplY3RQYWdlQ29udHJvbGxlcigpOiBXaXRoTW9jazxDb250cm9sbGVyICYgUGFnZUNvbnRyb2xsZXIgJiBPYmplY3RQYWdlQ29udHJvbGxlclR5cGUgJiBDb21tb25Db250cm9sbGVyVHlwZT4ge1xuXHQvLyBtYW51YWxseSBhZGQgTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlciBmdW5jdGlvbnMgc2luY2UgSSBhbSB1bmFibGUgdG8gaW1wb3J0IHRoZSBwcm90b3R5cGVcblx0Y29uc3Qgb2JqZWN0UGFnZTogTW9ja2VkSW5zdGFuY2U8T2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+ID0ge1xuXHRcdGdldFN0aWNreUVkaXRNb2RlOiBqZXN0LmZuKCksXG5cdFx0Z2V0RXh0ZW5zaW9uQVBJOiBqZXN0LmZuKCksXG5cdFx0X2VkaXRGbG93OiBtb2NrKEludGVybmFsRWRpdEZsb3cpIGFzIFdpdGhNb2NrPEludGVybmFsRWRpdEZsb3c+IGFzIGFueVxuXHR9O1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrKFBhZ2VDb250cm9sbGVyKSBhcyBhbnksIG9iamVjdFBhZ2UpIGFzIFdpdGhNb2NrPFxuXHRcdENvbnRyb2xsZXIgJiBQYWdlQ29udHJvbGxlciAmIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlXG5cdD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrQ29udGV4dEZvckV4dGVuc2lvbjxFWFQgZXh0ZW5kcyBvYmplY3QsIEJBU0UgZXh0ZW5kcyBvYmplY3Q+KFxuXHRleHRlbnNpb246IEVYVCxcblx0Y29udHJvbGxlcjogV2l0aE1vY2s8Q29udHJvbGxlcj4sXG5cdGJhc2U/OiBCQVNFXG4pOiBXaXRoTW9jazxFWFQgJiBVSTVJbnN0YW5jZVR5cGU8QkFTRT4+IHtcblx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHQoZXh0ZW5zaW9uIGFzIGFueSkuZ2V0VmlldyA9ICgpID0+IHZpZXc7XG5cdGNvbnN0IG1vY2tlZEJhc2UgPSBtb2NrKGJhc2UgfHwge30pO1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrZWRCYXNlLCBleHRlbnNpb24pIGFzIFdpdGhNb2NrPEVYVCAmIFVJNUluc3RhbmNlVHlwZTxCQVNFPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrRmlsdGVyQmFyKCk6IFdpdGhNb2NrPFxuXHRGaWx0ZXJCYXIgJiB7IHdhaXRGb3JJbml0aWFsaXphdGlvbjogRnVuY3Rpb247IF9iU2VhcmNoVHJpZ2dlcmVkOiBCb29sZWFuOyBfZ2V0Q29uZGl0aW9uTW9kZWw6IEZ1bmN0aW9uIH1cbj4ge1xuXHRjb25zdCBmaWx0ZXJCYXIgPSBtb2NrKEZpbHRlckJhcikgYXMgV2l0aE1vY2s8XG5cdFx0RmlsdGVyQmFyICYgeyB3YWl0Rm9ySW5pdGlhbGl6YXRpb246IEZ1bmN0aW9uOyBfYlNlYXJjaFRyaWdnZXJlZDogQm9vbGVhbjsgX2dldENvbmRpdGlvbk1vZGVsOiBGdW5jdGlvbiB9XG5cdD47XG5cdGZpbHRlckJhci5tb2NrLndhaXRGb3JJbml0aWFsaXphdGlvbiA9IGplc3QuZm4oKTtcblx0cmV0dXJuIGZpbHRlckJhcjtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import PageController from "sap/fe/core/PageController";
|
|
2
1
|
import { mock, MockedInstance, UI5InstanceType, WithMock } from "@sap-ux/jest-mock-ui5/dist/generic";
|
|
2
|
+
import InternalEditFlow from "sap/fe/core/controllerextensions/InternalEditFlow";
|
|
3
|
+
import PageController from "sap/fe/core/PageController";
|
|
3
4
|
import Controller from "sap/ui/core/mvc/Controller";
|
|
4
5
|
import FilterBar from "sap/ui/mdc/FilterBar";
|
|
5
|
-
import InternalEditFlow from "sap/fe/core/controllerextensions/InternalEditFlow";
|
|
6
6
|
|
|
7
7
|
interface CommonControllerType {
|
|
8
8
|
getExtensionAPI: any;
|
|
@@ -52,7 +52,7 @@ export function mockObjectPageController(): WithMock<Controller & PageController
|
|
|
52
52
|
const objectPage: MockedInstance<ObjectPageControllerType & CommonControllerType> = {
|
|
53
53
|
getStickyEditMode: jest.fn(),
|
|
54
54
|
getExtensionAPI: jest.fn(),
|
|
55
|
-
_editFlow:
|
|
55
|
+
_editFlow: mock(InternalEditFlow) as WithMock<InternalEditFlow> as any
|
|
56
56
|
};
|
|
57
57
|
return Object.assign(mock(PageController) as any, objectPage) as WithMock<
|
|
58
58
|
Controller & PageController & ObjectPageControllerType & CommonControllerType
|
|
@@ -70,8 +70,12 @@ export function mockContextForExtension<EXT extends object, BASE extends object>
|
|
|
70
70
|
return Object.assign(mockedBase, extension) as WithMock<EXT & UI5InstanceType<BASE>>;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
export function mockFilterBar(): WithMock<
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
export function mockFilterBar(): WithMock<
|
|
74
|
+
FilterBar & { waitForInitialization: Function; _bSearchTriggered: Boolean; _getConditionModel: Function }
|
|
75
|
+
> {
|
|
76
|
+
const filterBar = mock(FilterBar) as WithMock<
|
|
77
|
+
FilterBar & { waitForInitialization: Function; _bSearchTriggered: Boolean; _getConditionModel: Function }
|
|
78
|
+
>;
|
|
79
|
+
filterBar.mock.waitForInitialization = jest.fn();
|
|
76
80
|
return filterBar;
|
|
77
81
|
}
|