@sap_oss/wdio-qmate-service 2.1.1 → 2.2.1

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.
Files changed (34) hide show
  1. package/docs/doc.md +118 -28
  2. package/docs/index.md +2 -3
  3. package/lib/reuse/modules/common/userInteraction.d.ts +3 -3
  4. package/lib/reuse/modules/common/userInteraction.js +19 -18
  5. package/lib/reuse/modules/common/userInteraction.js.map +1 -1
  6. package/lib/reuse/modules/nonUi5/element.d.ts +11 -1
  7. package/lib/reuse/modules/nonUi5/element.js +14 -1
  8. package/lib/reuse/modules/nonUi5/element.js.map +1 -1
  9. package/lib/reuse/modules/nonUi5/userInteraction.d.ts +30 -11
  10. package/lib/reuse/modules/nonUi5/userInteraction.js +251 -155
  11. package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -1
  12. package/lib/reuse/modules/ui5/userInteraction.d.ts +41 -21
  13. package/lib/reuse/modules/ui5/userInteraction.js +95 -45
  14. package/lib/reuse/modules/ui5/userInteraction.js.map +1 -1
  15. package/package.json +1 -1
  16. package/test/helper/website/checkBox.html +9 -1
  17. package/test/reuse/nonUi5/userInteraction/check.spec.js +44 -0
  18. package/test/reuse/nonUi5/userInteraction/clear.spec.js +4 -4
  19. package/test/reuse/nonUi5/userInteraction/clearAndFill.spec.js +22 -18
  20. package/test/reuse/nonUi5/userInteraction/clearAndFillAndRetry.spec.js +11 -13
  21. package/test/reuse/nonUi5/userInteraction/clearAndRetry.spec.js +5 -4
  22. package/test/reuse/nonUi5/userInteraction/click.spec.js +7 -9
  23. package/test/reuse/nonUi5/userInteraction/clickAndRetry.spec.js +8 -9
  24. package/test/reuse/nonUi5/userInteraction/fill.spec.js +5 -5
  25. package/test/reuse/nonUi5/userInteraction/fillAndRetry.spec.js +8 -9
  26. package/test/reuse/nonUi5/userInteraction/mouseOverElement.spec.js +8 -13
  27. package/test/reuse/nonUi5/userInteraction/moveCursorAndClick.spec.js +4 -6
  28. package/test/reuse/nonUi5/userInteraction/scrollToElement.spec.js +2 -4
  29. package/test/reuse/nonUi5/userInteraction/test.userInteraction.conf.js +46 -40
  30. package/test/reuse/nonUi5/userInteraction/uncheck.spec.js +44 -0
  31. package/test/reuse/ui5/userInteraction/check.spec.js +66 -0
  32. package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +3 -1
  33. package/test/reuse/ui5/userInteraction/test.userInteraction.sauceLab.conf.js +5 -4
  34. package/test/reuse/ui5/userInteraction/uncheck.spec.js +66 -0
@@ -9,7 +9,7 @@ const userInteraction_constants_1 = require("./constants/userInteraction.constan
9
9
  */
10
10
  class UserInteraction {
11
11
  constructor() {
12
- this.vlf = new verboseLogger_1.VerboseLoggerFactory("nonui5", "userInteraction");
12
+ this.vlf = new verboseLogger_1.VerboseLoggerFactory("nonUi5", "userInteraction");
13
13
  }
14
14
  // =================================== CLICK ===================================
15
15
  /**
@@ -23,28 +23,28 @@ class UserInteraction {
23
23
  */
24
24
  async click(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
25
25
  const vl = this.vlf.initLog(this.click);
26
- vl.log("Expecting element to be displayed and enabled");
27
- await Promise.all([
28
- expect(element).toBeDisplayed({
29
- //TODO: Reuse of internal functions?
30
- wait: timeout,
31
- interval: 100,
32
- message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
33
- }),
34
- expect(element).toBeEnabled({
35
- //TODO: Reuse of internal functions?
36
- wait: timeout,
37
- interval: 100,
38
- message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
39
- })
40
- ]);
41
26
  try {
27
+ this._verifyElement(element);
28
+ vl.log("Expecting element to be displayed and enabled");
29
+ await Promise.all([
30
+ expect(element).toBeDisplayed({
31
+ //TODO: Reuse of internal functions?
32
+ wait: timeout,
33
+ interval: 100,
34
+ message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
35
+ }),
36
+ expect(element).toBeEnabled({
37
+ //TODO: Reuse of internal functions?
38
+ wait: timeout,
39
+ interval: 100,
40
+ message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
41
+ })
42
+ ]);
42
43
  vl.log("Clicking the element");
43
44
  await element.click();
44
45
  }
45
46
  catch (error) {
46
- const errorMessage = await util.function.mapWdioErrorToQmateErrorMessage(error, "click");
47
- throw new Error(errorMessage);
47
+ this._throwErrorForFunction("click", error);
48
48
  }
49
49
  }
50
50
  /**
@@ -60,11 +60,14 @@ class UserInteraction {
60
60
  */
61
61
  async clickAndRetry(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000, retries = 3, interval = 5000) {
62
62
  const vl = this.vlf.initLog(this.click);
63
- if (!element) {
64
- throw new Error("Function 'clearAndRetry' failed. Please provide an element as first argument.");
63
+ try {
64
+ this._verifyElement(element);
65
+ vl.log("Clicking the element");
66
+ return util.function.retry(this.click, [element, timeout], retries, interval, this);
67
+ }
68
+ catch (error) {
69
+ this._throwErrorForFunction("clickAndRetry", error);
65
70
  }
66
- vl.log("Retrying...");
67
- return util.function.retry(this.click, [element, timeout], retries, interval, this);
68
71
  }
69
72
  /**
70
73
  * @function doubleClick
@@ -77,26 +80,26 @@ class UserInteraction {
77
80
  */
78
81
  async doubleClick(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
79
82
  const vl = this.vlf.initLog(this.doubleClick);
80
- vl.log("Expecting element to be displayed and enabled");
81
- await Promise.all([
82
- expect(element).toBeDisplayed({
83
- wait: timeout,
84
- interval: 100,
85
- message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
86
- }),
87
- expect(element).toBeEnabled({
88
- wait: timeout,
89
- interval: 100,
90
- message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
91
- })
92
- ]);
93
83
  try {
84
+ this._verifyElement(element);
85
+ vl.log("Expecting element to be displayed and enabled");
86
+ await Promise.all([
87
+ expect(element).toBeDisplayed({
88
+ wait: timeout,
89
+ interval: 100,
90
+ message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
91
+ }),
92
+ expect(element).toBeEnabled({
93
+ wait: timeout,
94
+ interval: 100,
95
+ message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
96
+ })
97
+ ]);
94
98
  vl.log("Clicking the element");
95
99
  await element.doubleClick();
96
100
  }
97
101
  catch (error) {
98
- const errorMessage = await util.function.mapWdioErrorToQmateErrorMessage(error, "doubleClick");
99
- throw new Error(errorMessage);
102
+ this._throwErrorForFunction("doubleClick", error);
100
103
  }
101
104
  }
102
105
  /**
@@ -110,28 +113,75 @@ class UserInteraction {
110
113
  */
111
114
  async rightClick(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
112
115
  const vl = this.vlf.initLog(this.rightClick);
113
- vl.log("Expecting element to be displayed and enabled");
114
- await Promise.all([
115
- expect(element).toBeDisplayed({
116
- wait: timeout,
117
- interval: 100,
118
- message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
119
- }),
120
- expect(element).toBeEnabled({
121
- wait: timeout,
122
- interval: 100,
123
- message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
124
- })
125
- ]);
126
116
  try {
117
+ this._verifyElement(element);
118
+ vl.log("Expecting element to be displayed and enabled");
119
+ await Promise.all([
120
+ expect(element).toBeDisplayed({
121
+ wait: timeout,
122
+ interval: 100,
123
+ message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
124
+ }),
125
+ expect(element).toBeEnabled({
126
+ wait: timeout,
127
+ interval: 100,
128
+ message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
129
+ })
130
+ ]);
127
131
  vl.log("Clicking the element");
128
132
  await element.click({
129
133
  button: "right"
130
134
  });
131
135
  }
132
136
  catch (error) {
133
- const errorMessage = await util.function.mapWdioErrorToQmateErrorMessage(error, "rightClick");
134
- throw new Error(errorMessage);
137
+ this._throwErrorForFunction("rightClick", error);
138
+ }
139
+ }
140
+ // =================================== CHECK ===================================
141
+ /**
142
+ * @function check
143
+ * @memberOf nonUi5.userInteraction
144
+ * @description Checks the given checkbox.
145
+ * @param {Object} element - The element.
146
+ * @example await nonUi5.userInteraction.check(selector);
147
+ */
148
+ async check(element) {
149
+ const vl = this.vlf.initLog(this.check);
150
+ try {
151
+ this._verifyElement(element);
152
+ const isSelected = await nonUi5.element.isSelected(element);
153
+ if (!isSelected) {
154
+ await this.click(element);
155
+ }
156
+ else {
157
+ vl.log("Checkbox already selected.");
158
+ }
159
+ }
160
+ catch (error) {
161
+ this._throwErrorForFunction("check", error);
162
+ }
163
+ }
164
+ /**
165
+ * @function uncheck
166
+ * @memberOf nonUi5.userInteraction
167
+ * @description Unchecks the given checkbox.
168
+ * @param {Object} element - The element.
169
+ * @example await nonUi5.userInteraction.uncheck(selector);
170
+ */
171
+ async uncheck(element) {
172
+ const vl = this.vlf.initLog(this.check);
173
+ try {
174
+ this._verifyElement(element);
175
+ const isSelected = await nonUi5.element.isSelected(element);
176
+ if (isSelected) {
177
+ await this.click(element);
178
+ }
179
+ else {
180
+ vl.log("Checkbox already unchecked.");
181
+ }
182
+ }
183
+ catch (error) {
184
+ this._throwErrorForFunction("uncheck", error);
135
185
  }
136
186
  }
137
187
  // =================================== FILL ===================================
@@ -140,35 +190,20 @@ class UserInteraction {
140
190
  * @memberOf nonUi5.userInteraction
141
191
  * @description Fills the given value into the passed input.
142
192
  * @param {Object} element - The element.
143
- * @param {String} value - The value to be filled.
193
+ * @param {String | Number} value - The value to enter.
144
194
  * @example const elem = await nonUi5.element.getById("input01");
145
195
  * await nonUi5.userInteraction.fill(elem, "Service 01");
146
196
  */
147
197
  async fill(element, value) {
148
198
  const vl = this.vlf.initLog(this.fill);
149
- if (!(typeof value === "number" || typeof value === "string")) {
150
- throw new Error("Function 'fill' failed: Please provide an element and value(datatype - number/string) as arguments");
199
+ try {
200
+ this._verifyElement(element);
201
+ this._verifyValue(value);
202
+ vl.log(`Setting the value of element to ${value}`);
203
+ await element.setValue(value);
151
204
  }
152
- else {
153
- try {
154
- vl.log(`Setting the value of element to ${value}`);
155
- await element.setValue(value);
156
- }
157
- catch (error) {
158
- // @ts-ignore
159
- if (error.message && error.message.match(new RegExp(/(invalid element state|element not interactable)/))) {
160
- const errorMessage = await util.function.mapWdioErrorToQmateErrorMessage(error, "fill");
161
- throw new Error(errorMessage);
162
- }
163
- else {
164
- if (!value) {
165
- throw new Error("Function 'fill' failed: Please provide a value as second argument: " + error);
166
- }
167
- else {
168
- throw error;
169
- }
170
- }
171
- }
205
+ catch (error) {
206
+ this._throwErrorForFunction("fill", error);
172
207
  }
173
208
  }
174
209
  /**
@@ -176,7 +211,7 @@ class UserInteraction {
176
211
  * @memberOf nonUi5.userInteraction
177
212
  * @description Fills the given value into the passed input, retries in case of a failure.
178
213
  * @param {Object} element - The element.
179
- * @param {String} value - The value to be filled.
214
+ * @param {String | Number} value - The value to enter.
180
215
  * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
181
216
  * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
182
217
  * @example const elem = await nonUi5.element.getById("input01");
@@ -184,13 +219,15 @@ class UserInteraction {
184
219
  */
185
220
  async fillAndRetry(element, value, retries = 3, interval = 5000) {
186
221
  const vl = this.vlf.initLog(this.fillAndRetry);
187
- if (!element || value === null || value === undefined || value === "") {
188
- throw new Error("Function 'fillAndRetry' failed: Please provide an element and value as arguments.");
189
- }
190
- else {
191
- vl.log("Retrying...");
222
+ try {
223
+ this._verifyElement(element);
224
+ this._verifyValue(value);
225
+ vl.log(`Setting the value of element to ${value}`);
192
226
  return util.function.retry(this.fill, [element, value], retries, interval, this);
193
227
  }
228
+ catch (error) {
229
+ this._throwErrorForFunction("fillAndRetry", error);
230
+ }
194
231
  }
195
232
  // =================================== CLEAR ===================================
196
233
  /**
@@ -203,10 +240,14 @@ class UserInteraction {
203
240
  */
204
241
  async clear(element) {
205
242
  const vl = this.vlf.initLog(this.clear);
206
- if (!element) {
207
- throw new Error("Function 'clear' failed: Please provide an element as first argument.");
243
+ try {
244
+ this._verifyElement(element);
245
+ vl.log(`Clearing the value of element`);
246
+ return element.clearValue();
247
+ }
248
+ catch (error) {
249
+ this._throwErrorForFunction("clear", error);
208
250
  }
209
- return element.clearValue();
210
251
  }
211
252
  /**
212
253
  * @function clearAndRetry
@@ -220,36 +261,35 @@ class UserInteraction {
220
261
  */
221
262
  async clearAndRetry(element, retries = 3, interval = 5000) {
222
263
  const vl = this.vlf.initLog(this.clearAndRetry);
223
- if (!element) {
224
- throw new Error("Function 'clearAndRetry' failed: Please provide an element as first argument.");
264
+ try {
265
+ this._verifyElement(element);
266
+ vl.log(`Clearing the value of element`);
267
+ return util.function.retry(this.clear, [element], retries, interval, this);
268
+ }
269
+ catch (error) {
270
+ this._throwErrorForFunction("clearAndRetry", error);
225
271
  }
226
- return util.function.retry(this.clear, [element], retries, interval, this);
227
272
  }
228
273
  /**
229
274
  * @function clearAndFill
230
275
  * @memberOf nonUi5.userInteraction
231
276
  * @description Clears and fills the passed input element.
232
277
  * @param {Object} element - The element.
233
- * @param {String} value - The value to be filled in.
278
+ * @param {String | Number} value - The value to enter in.
234
279
  * @example const elem = await nonUi5.element.getById("input01");
235
280
  * await nonUi5.userInteraction.clearAndFill(elem, "Service 01");
236
281
  */
237
282
  async clearAndFill(element, value) {
238
283
  const vl = this.vlf.initLog(this.clearAndFill);
239
- //arg. 'value' needs to be checked in case of numeric values. E.g.: 0 or 1 will be handled as boolean value in if.
240
- if (!element || !(typeof value === "number" || typeof value === "string")) {
241
- throw new Error("Function 'clearAndFill' failed: Please provide an element and value(datatype - number/string) as arguments.");
284
+ try {
285
+ this._verifyElement(element);
286
+ this._verifyValue(value);
287
+ await this.clear(element);
288
+ vl.log(`Setting the value of element to ${value}`);
289
+ await element.setValue(value);
242
290
  }
243
- else {
244
- try {
245
- vl.log("Clearing the element");
246
- await this.clear(element);
247
- vl.log(`Setting the value of element to ${value}`);
248
- await element.setValue(value);
249
- }
250
- catch (error) {
251
- throw new Error(`Function 'clearAndFill' failed: ${error}`);
252
- }
291
+ catch (error) {
292
+ this._throwErrorForFunction("clearAndFill", error);
253
293
  }
254
294
  }
255
295
  /**
@@ -257,7 +297,7 @@ class UserInteraction {
257
297
  * @memberOf nonUi5.userInteraction
258
298
  * @description Clears and fills the passed input, retries in case it fails.
259
299
  * @param {Object} element - The element.
260
- * @param {String} value - The value to be filled in.
300
+ * @param {String | Number} value - The value to enter in.
261
301
  * @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
262
302
  * @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
263
303
  * @param {Boolean} [verify=true] - Specifies if the filled value should be verified.
@@ -266,34 +306,42 @@ class UserInteraction {
266
306
  */
267
307
  async clearAndFillAndRetry(element, value, retries = 3, interval = 5000, verify = true) {
268
308
  const vl = this.vlf.initLog(this.clearAndFillAndRetry);
269
- return util.function.retry(async (elem, value) => {
270
- await this.clearAndFill(elem, value);
271
- if (verify) {
272
- const elemValue = await elem.getValue();
273
- if (elemValue != value)
274
- throw new Error("Function 'clearAndFillAndRetry' failed. Verification of value failed.");
275
- }
276
- }, [element, value], retries, interval, this);
309
+ try {
310
+ this._verifyElement(element);
311
+ this._verifyValue(value);
312
+ return util.function.retry(async (elem, value) => {
313
+ await this.clearAndFill(elem, value);
314
+ if (verify) {
315
+ const elemValue = await elem.getValue();
316
+ if (elemValue != value)
317
+ throw new Error("Verification of value failed.");
318
+ }
319
+ }, [element, value], retries, interval, this);
320
+ }
321
+ catch (error) {
322
+ this._throwErrorForFunction("clearAndFillAndRetry", error);
323
+ }
277
324
  }
278
325
  // =================================== OTHERS ===================================
279
326
  /**
280
327
  * @function mouseOverElement
281
328
  * @memberOf nonUi5.userInteraction
282
329
  * @description Moves the cursor/focus to the passed element.
283
- * @param {Object} element - The selector describing the element.
330
+ * @param {Object} element - The element.
284
331
  * @param {Number} [xOffset] - X offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
285
332
  * @param {Number} [yOffset] - Y offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
286
333
  * @example const elem = await nonUi5.element.getById("dropdown42");
287
334
  * await nonUi5.userInteraction.mouseOverElement(elem);
288
335
  */
289
- async mouseOverElement(elem, xOffset, yOffset) {
336
+ async mouseOverElement(element, xOffset, yOffset) {
290
337
  const vl = this.vlf.initLog(this.mouseOverElement);
291
338
  try {
292
- await elem.moveTo({ xOffset, yOffset });
339
+ this._verifyElement(element);
340
+ vl.log("Moving mouse to element");
341
+ await element.moveTo({ xOffset, yOffset });
293
342
  }
294
343
  catch (error) {
295
- // @ts-ignore
296
- throw new Error("Function: 'mouseOverElement' failed: ", error);
344
+ this._throwErrorForFunction("mouseOverElement", error);
297
345
  }
298
346
  }
299
347
  /**
@@ -306,13 +354,20 @@ class UserInteraction {
306
354
  * @example const elem = await nonUi5.userInteraction.getElementById("footer01");
307
355
  * await nonUi5.userInteraction.scrollToElement(elem);
308
356
  */
309
- async scrollToElement(elem, alignment = userInteraction_constants_1.AlignmentValues.CENTER) {
357
+ async scrollToElement(element, alignment = userInteraction_constants_1.AlignmentValues.CENTER) {
310
358
  const vl = this.vlf.initLog(this.scrollToElement);
311
- const options = {
312
- block: alignment,
313
- inline: alignment
314
- };
315
- await elem.scrollIntoView(options);
359
+ try {
360
+ this._verifyElement(element);
361
+ const options = {
362
+ block: alignment,
363
+ inline: alignment
364
+ };
365
+ vl.log("Scrolling to element");
366
+ await element.scrollIntoView(options);
367
+ }
368
+ catch (error) {
369
+ this._throwErrorForFunction("scrollToElement", error);
370
+ }
316
371
  }
317
372
  /**
318
373
  * @function dragAndDrop
@@ -326,27 +381,32 @@ class UserInteraction {
326
381
  */
327
382
  async dragAndDrop(element, targetElem) {
328
383
  const vl = this.vlf.initLog(this.dragAndDrop);
329
- // await element.dragAndDrop(targetElem);
330
- const sourceSize = await element.getSize();
331
- const targetSize = await targetElem.getSize();
332
- const sourceLocation = await element.getLocation();
333
- const targetLocation = await targetElem.getLocation();
334
- // Get centers of elements to move from center to center (e.g. to avoid errors in rounded elements)
335
- const sourceCenterLocation = {
336
- x: +Number(sourceSize.width / 2).toFixed(0) + +Number(sourceLocation.x).toFixed(0) + 1,
337
- y: +Number(sourceSize.height / 2).toFixed(0) + +Number(sourceLocation.y).toFixed(0) + 1
338
- };
339
- const targetCenterLocation = {
340
- x: +Number(targetSize.width / 2).toFixed(0) + +Number(targetLocation.x).toFixed(0) + 1,
341
- y: +Number(targetSize.height / 2).toFixed(0) + +Number(targetLocation.y).toFixed(0) + 1
342
- };
343
- await browser
344
- .action("pointer")
345
- .move({ duration: 0, x: sourceCenterLocation.x, y: sourceCenterLocation.y })
346
- .down({ button: 0 }) //left button
347
- .move({ duration: 0, x: targetCenterLocation.x, y: targetCenterLocation.y })
348
- .down({ button: 0 }) //left button
349
- .perform();
384
+ try {
385
+ this._verifyElement(element);
386
+ const sourceSize = await element.getSize();
387
+ const targetSize = await targetElem.getSize();
388
+ const sourceLocation = await element.getLocation();
389
+ const targetLocation = await targetElem.getLocation();
390
+ // Get centers of elements to move from center to center (e.g. to avoid errors in rounded elements)
391
+ const sourceCenterLocation = {
392
+ x: +Number(sourceSize.width / 2).toFixed(0) + +Number(sourceLocation.x).toFixed(0) + 1,
393
+ y: +Number(sourceSize.height / 2).toFixed(0) + +Number(sourceLocation.y).toFixed(0) + 1
394
+ };
395
+ const targetCenterLocation = {
396
+ x: +Number(targetSize.width / 2).toFixed(0) + +Number(targetLocation.x).toFixed(0) + 1,
397
+ y: +Number(targetSize.height / 2).toFixed(0) + +Number(targetLocation.y).toFixed(0) + 1
398
+ };
399
+ await browser
400
+ .action("pointer")
401
+ .move({ duration: 0, x: sourceCenterLocation.x, y: sourceCenterLocation.y })
402
+ .down({ button: 0 }) //left button
403
+ .move({ duration: 0, x: targetCenterLocation.x, y: targetCenterLocation.y })
404
+ .down({ button: 0 }) //left button
405
+ .perform();
406
+ }
407
+ catch (error) {
408
+ this._throwErrorForFunction("dragAndDrop", error);
409
+ }
350
410
  }
351
411
  /**
352
412
  * @function moveCursorAndClick
@@ -358,8 +418,14 @@ class UserInteraction {
358
418
  */
359
419
  async moveCursorAndClick(element) {
360
420
  const vl = this.vlf.initLog(this.moveCursorAndClick);
361
- await element.moveTo();
362
- await element.click();
421
+ try {
422
+ this._verifyElement(element);
423
+ await element.moveTo();
424
+ await element.click();
425
+ }
426
+ catch (error) {
427
+ this._throwErrorForFunction("moveCursorAndClick", error);
428
+ }
363
429
  }
364
430
  /**
365
431
  * @function clickElementInSvg
@@ -373,17 +439,47 @@ class UserInteraction {
373
439
  */
374
440
  async clickElementInSvg(svgElem, innerSelector) {
375
441
  const vl = this.vlf.initLog(this.clickElementInSvg);
376
- const innerElem = await $(innerSelector);
377
- const svgPos = await svgElem.getLocation();
378
- const innerPos = await innerElem.getLocation();
379
- const svgSize = await svgElem.getSize();
380
- const innerSize = await innerElem.getSize();
381
- const diffX = innerPos.x - svgPos.x;
382
- const diffY = innerPos.y - svgPos.y;
383
- const centerOffsetX = -(svgSize.width / 2) + diffX + innerSize.width / 2;
384
- const centerOffsetY = -(svgSize.height / 2) + diffY + innerSize.height / 2;
385
- // @ts-ignore
386
- await svgElem.click({ x: parseInt(centerOffsetX), y: parseInt(centerOffsetY) });
442
+ try {
443
+ const innerElem = await $(innerSelector);
444
+ const svgPos = await svgElem.getLocation();
445
+ const innerPos = await innerElem.getLocation();
446
+ const svgSize = await svgElem.getSize();
447
+ const innerSize = await innerElem.getSize();
448
+ const diffX = innerPos.x - svgPos.x;
449
+ const diffY = innerPos.y - svgPos.y;
450
+ const centerOffsetX = -(svgSize.width / 2) + diffX + innerSize.width / 2;
451
+ const centerOffsetY = -(svgSize.height / 2) + diffY + innerSize.height / 2;
452
+ // @ts-ignore
453
+ await svgElem.click({ x: parseInt(centerOffsetX), y: parseInt(centerOffsetY) });
454
+ }
455
+ catch (error) {
456
+ this._throwErrorForFunction("clickElementInSvg", error);
457
+ }
458
+ }
459
+ // =================================== HELPERS ===================================
460
+ // TODO: move to internal utility classes
461
+ _throwErrorForFunction(functionName, error) {
462
+ if (error instanceof Error) {
463
+ if (error.message) {
464
+ throw new Error(`Function '${functionName}' failed with: ${error.message}`);
465
+ }
466
+ else {
467
+ throw new Error(`Function '${functionName}' failed with ${error.message}`);
468
+ }
469
+ }
470
+ else {
471
+ throw new Error(`Function '${functionName}' failed with an unknown error.`);
472
+ }
473
+ }
474
+ _verifyElement(element) {
475
+ if (!element) {
476
+ throw new Error("Please provide an element as first argument.");
477
+ }
478
+ }
479
+ _verifyValue(value) {
480
+ if (typeof value !== "string" && typeof value !== "number") {
481
+ throw new Error("value is invalid. It must be of type 'string' or 'number'");
482
+ }
387
483
  }
388
484
  }
389
485
  exports.UserInteraction = UserInteraction;
@@ -1 +1 @@
1
- {"version":3,"file":"userInteraction.js","sourceRoot":"","sources":["../../../../src/reuse/modules/nonUi5/userInteraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userInteraction.js","sourceRoot":"","sources":["../../../../src/reuse/modules/nonUi5/userInteraction.ts"],"names":[],"mappings":"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"}