@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.
@@ -105,8 +105,8 @@ function getReturnType(tags) {
105
105
  function mapTagToArgument(tag) {
106
106
  return {
107
107
  name: tag.name,
108
- type: (tag.type && tag.type.name && tag.type.name.toLowerCase()) || "string",
109
- default: tag.default ? tag.default : null
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;IAqGpF,CAAC;IAnGC,kFAAkF;IAClF;;;;;;;;;;;;;QAaI;IACJ,KAAK,CAAC,OAAO,CAAC,gBAA0B,EAAE,iBAAiE,EAAE,IAAU;QACrH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,8EAA8E;IAC9E;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,WAAW,CAAC,iBAAiE,EAAE,YAAoB;QACvG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,sBAAsB,CAAC,iBAAiE,EAAE,YAAoB;QAClH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,sBAAsB,CAAC,iBAAiE,EAAE,YAAoB;QAClH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;QAQI;IACJ,KAAK,CAAC,6BAA6B,CAAC,iBAAiE;QACnG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,KAAK,CAAC,kBAAkB,CAAC,iBAAiE,EAAE,YAAoB;QAC9G,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClF,CAAC;CACF;AAzGD,0BAyGC;AACD,kBAAe,IAAI,OAAO,EAAE,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap_oss/wdio-qmate-service",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "author": "SAP SE",
5
5
  "types": "./@types/index.d.ts",
6
6
  "main": "./lib/index.js",
@@ -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"),