@sap_oss/wdio-qmate-service 2.2.1 → 2.3.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/lib/reuse/helper/jsonDocGen.js +49 -2
- package/lib/reuse/helper/jsonDocGen.js.map +1 -1
- package/lib/reuse/modules/ui5/control.d.ts +11 -0
- package/lib/reuse/modules/ui5/control.js +27 -0
- package/lib/reuse/modules/ui5/control.js.map +1 -1
- package/package.json +1 -1
- package/test/reuse/ui5/control/focus.spec.js +100 -0
- package/test/reuse/ui5/control/test.control.conf.js +1 -0
- package/test/reuse/ui5/control/test.control.sauceLab.conf.js +1 -0
|
@@ -105,8 +105,8 @@ function getReturnType(tags) {
|
|
|
105
105
|
function mapTagToArgument(tag) {
|
|
106
106
|
return {
|
|
107
107
|
name: tag.name,
|
|
108
|
-
type: (tag
|
|
109
|
-
default: tag
|
|
108
|
+
type: getArgumentType(tag),
|
|
109
|
+
default: getArgumentDefaultValue(tag)
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
112
|
function parseReturnTypeFromReturnTag(tag) {
|
|
@@ -118,4 +118,51 @@ function parseReturnTypeFromReturnTag(tag) {
|
|
|
118
118
|
}
|
|
119
119
|
return undefined;
|
|
120
120
|
}
|
|
121
|
+
function getArgumentType(tag) {
|
|
122
|
+
if (cannotParseArgumentTypeFromTag(tag)) {
|
|
123
|
+
return "string";
|
|
124
|
+
}
|
|
125
|
+
if (canParseArgumentTypeFromTagName(tag)) {
|
|
126
|
+
return parseArgumentTypeFromTagName(tag);
|
|
127
|
+
}
|
|
128
|
+
else if (canParseArgumentTypeFromTagExpression(tag)) {
|
|
129
|
+
return parseArgumentTypeFromTagExpression(tag);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function getArgumentDefaultValue(tag) {
|
|
133
|
+
if (!tag.default) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
return getArgumentDefaultValueBasedOnType(tag);
|
|
137
|
+
}
|
|
138
|
+
function cannotParseArgumentTypeFromTag(tag) {
|
|
139
|
+
return !canParseArgumentTypeFromTag(tag);
|
|
140
|
+
}
|
|
141
|
+
function canParseArgumentTypeFromTag(tag) {
|
|
142
|
+
return tag.type
|
|
143
|
+
&& (canParseArgumentTypeFromTagName(tag)
|
|
144
|
+
|| canParseArgumentTypeFromTagExpression(tag));
|
|
145
|
+
}
|
|
146
|
+
function canParseArgumentTypeFromTagName(tag) {
|
|
147
|
+
return !!tag.type.name;
|
|
148
|
+
}
|
|
149
|
+
function parseArgumentTypeFromTagName(tag) {
|
|
150
|
+
return tag.type.name.toLowerCase();
|
|
151
|
+
}
|
|
152
|
+
function canParseArgumentTypeFromTagExpression(tag) {
|
|
153
|
+
return tag.type.expression && tag.type.expression.name;
|
|
154
|
+
}
|
|
155
|
+
function parseArgumentTypeFromTagExpression(tag) {
|
|
156
|
+
return tag.type.expression.name.toLowerCase();
|
|
157
|
+
}
|
|
158
|
+
function getArgumentDefaultValueBasedOnType(tag) {
|
|
159
|
+
const type = getArgumentType(tag);
|
|
160
|
+
if (type === "number") {
|
|
161
|
+
return parseInt(tag.default);
|
|
162
|
+
}
|
|
163
|
+
if (type === "boolean") {
|
|
164
|
+
return Boolean(tag.default);
|
|
165
|
+
}
|
|
166
|
+
return tag.default;
|
|
167
|
+
}
|
|
121
168
|
//# sourceMappingURL=jsonDocGen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonDocGen.js","sourceRoot":"","sources":["../../../src/reuse/helper/jsonDocGen.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"jsonDocGen.js","sourceRoot":"","sources":["../../../src/reuse/helper/jsonDocGen.js"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,17 @@ export declare class Control {
|
|
|
23
23
|
* }, selector, args);
|
|
24
24
|
**/
|
|
25
25
|
execute(callbackFunction: Function, selectorOrElement: Element | Ui5Selector | Ui5SelectorWithOptions, args?: any): Promise<any>;
|
|
26
|
+
/**
|
|
27
|
+
* @function focus
|
|
28
|
+
* @memberOf ui5.control
|
|
29
|
+
* @description Focuses on the element with the given selector to get it into view. If focus is not possible scrollToElement is used.
|
|
30
|
+
* @param {Object} selector - The selector describing the element.
|
|
31
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
32
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
33
|
+
* @example await ui5.control.focus(selector);
|
|
34
|
+
* @example await ui5.control.focus(selector, 0, 5000);
|
|
35
|
+
*/
|
|
36
|
+
focus(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
26
37
|
/**
|
|
27
38
|
* @function getProperty
|
|
28
39
|
* @memberOf ui5.control
|
|
@@ -31,6 +31,33 @@ class Control {
|
|
|
31
31
|
const vl = this.vlf.initLog(this.execute);
|
|
32
32
|
return this.lib.controlActionInBrowser(callbackFunction, selectorOrElement, args);
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* @function focus
|
|
36
|
+
* @memberOf ui5.control
|
|
37
|
+
* @description Focuses on the element with the given selector to get it into view. If focus is not possible scrollToElement is used.
|
|
38
|
+
* @param {Object} selector - The selector describing the element.
|
|
39
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
40
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
41
|
+
* @example await ui5.control.focus(selector);
|
|
42
|
+
* @example await ui5.control.focus(selector, 0, 5000);
|
|
43
|
+
*/
|
|
44
|
+
async focus(selector, index = 0, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
45
|
+
const elem = await ui5.element.getDisplayed(selector, index, timeout);
|
|
46
|
+
const id = await elem.getAttribute("id");
|
|
47
|
+
const focused = await browser.execute(function (id) {
|
|
48
|
+
const elem = sap.ui.getCore().getElementById(id);
|
|
49
|
+
if (elem && elem.focus) {
|
|
50
|
+
elem.focus();
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}, id);
|
|
57
|
+
if (!focused) {
|
|
58
|
+
ui5.userInteraction.scrollToElement(selector, index, "center", timeout);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
34
61
|
// =================================== GET ===================================
|
|
35
62
|
/**
|
|
36
63
|
* @function getProperty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/control.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAGb,8DAAkE;AAGlE;;;GAGG;AACH,MAAa,OAAO;IAApB;QACU,QAAG,GAAG,IAAI,oCAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEjD,QAAG,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAClD,oBAAe,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/control.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { handleCookiesConsent } = require("../../../helper/utils");
|
|
3
|
+
|
|
4
|
+
describe("control - focus - for a input field", function () {
|
|
5
|
+
it("Preparation", async function () {
|
|
6
|
+
await common.navigation.navigateToUrl("https://sapui5.hana.ondemand.com/1.99.0/#/entity/sap.ui.comp.smartfield.SmartField/sample/sap.ui.comp.sample.smartfield.TextInEditModeSource");
|
|
7
|
+
await handleCookiesConsent();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it("Execution & Verification", async function () {
|
|
11
|
+
const lastInputSelector = {
|
|
12
|
+
"elementProperties": {
|
|
13
|
+
"viewName": "sap.ui.comp.sample.smartfield.TextInEditModeSource.Main",
|
|
14
|
+
"metadata": "sap.m.Input",
|
|
15
|
+
"id": "*idValueListNoValidation-input"
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
await ui5.control.focus(lastInputSelector);
|
|
19
|
+
await ui5.userInteraction.clearAndFillAndRetry(lastInputSelector, "LN");
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe("control - focus", function () {
|
|
24
|
+
it("Preparation", async function () {
|
|
25
|
+
await common.navigation.navigateToUrl("https://sapui5.hana.ondemand.com/1.99.0/#/entity/sap.m.ActionSheet");
|
|
26
|
+
await handleCookiesConsent();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("Execution and Verification", async function () {
|
|
30
|
+
const selector = {
|
|
31
|
+
"elementProperties": {
|
|
32
|
+
"viewName": "sap.ui.documentation.sdk.view.ControlsMaster",
|
|
33
|
+
"metadata": "sap.m.StandardListItem",
|
|
34
|
+
"bindingContextPath": "/entities/199"
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
await ui5.control.focus(selector); //can see the scroll take place during this step
|
|
38
|
+
await ui5.assertion.expectToBeVisible(selector);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
describe("control - focus - outside of viewpoint", function () {
|
|
43
|
+
it("Preparation", async function () {
|
|
44
|
+
await common.navigation.navigateToUrl("https://sapui5.hana.ondemand.com/1.99.0/#/entity/sap.m.MultiComboBox/sample/sap.m.sample.MultiComboBox");
|
|
45
|
+
await handleCookiesConsent();
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("Execution", async function () {
|
|
49
|
+
const selectorForDropdownList = {
|
|
50
|
+
"elementProperties": {
|
|
51
|
+
"viewName": "sap.m.sample.MultiComboBox.view.MultiComboBox",
|
|
52
|
+
"metadata": "sap.m.MultiComboBox"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const selector = {
|
|
56
|
+
"elementProperties": {
|
|
57
|
+
"viewName": "sap.m.sample.MultiComboBox.view.MultiComboBox",
|
|
58
|
+
"metadata": "sap.m.StandardListItem",
|
|
59
|
+
"title": "Smart Games"
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
await ui5.userInteraction.clickSelectArrow(selectorForDropdownList);
|
|
64
|
+
await ui5.control.focus(selector);
|
|
65
|
+
await ui5.userInteraction.click(selector);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("Verification", async function () {
|
|
69
|
+
const selector = {
|
|
70
|
+
"elementProperties": {
|
|
71
|
+
"viewName": "sap.m.sample.MultiComboBox.view.MultiComboBox",
|
|
72
|
+
"metadata": "sap.m.Token"
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
await ui5.assertion.expectAttributeToBe(selector, "text", "Smart Games");
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
describe("control - focus - no selector found and catch error", function () {
|
|
80
|
+
|
|
81
|
+
it("Preparation", async function () {
|
|
82
|
+
await browser.navigateTo("https://sapui5.hana.ondemand.com/1.99.0/test-resources/sap/m/demokit/cart/webapp/index.html");
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it("Execution & Verification", async function () {
|
|
86
|
+
const selector = {
|
|
87
|
+
"elementProperties": {
|
|
88
|
+
"viewName": "ghgjho.cart.view.Welcome",
|
|
89
|
+
"metadata": "",
|
|
90
|
+
"text": [{
|
|
91
|
+
"path": "i18n>promotedTitle"
|
|
92
|
+
}]
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const index = 0;
|
|
96
|
+
const timeout = 30000;
|
|
97
|
+
await expect(ui5.control.focus(selector, index, timeout))
|
|
98
|
+
.rejects.toThrow(/uiControlExecuteLocator\(\): No visible elements found/);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -10,6 +10,7 @@ exports.config = merge(profile.config, {
|
|
|
10
10
|
|
|
11
11
|
specs: [
|
|
12
12
|
path.resolve(__dirname, "execute.spec.js"),
|
|
13
|
+
path.resolve(__dirname, "focus.spec.js"),
|
|
13
14
|
path.resolve(__dirname, "getAggregationProperty.spec.js"),
|
|
14
15
|
path.resolve(__dirname, "getAssociationProperty.spec.js"),
|
|
15
16
|
path.resolve(__dirname, "getBindingContextPathProperty.spec.js"),
|
|
@@ -14,6 +14,7 @@ exports.config = merge(profile.config, {
|
|
|
14
14
|
|
|
15
15
|
specs: [
|
|
16
16
|
path.resolve(__dirname, "execute.spec.js"),
|
|
17
|
+
path.resolve(__dirname, "focus.spec.js"),
|
|
17
18
|
path.resolve(__dirname, "getAggregationProperty.spec.js"),
|
|
18
19
|
path.resolve(__dirname, "getAssociationProperty.spec.js"),
|
|
19
20
|
path.resolve(__dirname, "getBindingContextPathProperty.spec.js"),
|