@sap_oss/wdio-qmate-service 3.6.3 → 3.7.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.
Files changed (24) hide show
  1. package/lib/scripts/locators/qmateLocator.js +62 -23
  2. package/lib/scripts/locators/qmateLocator.js.map +1 -1
  3. package/lib/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.js +5 -0
  4. package/lib/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.js.map +1 -1
  5. package/lib/scripts/locators/qmateLocatorSrc/filters/BaseFilter.d.ts +2 -2
  6. package/lib/scripts/locators/qmateLocatorSrc/filters/BaseFilter.js +7 -2
  7. package/lib/scripts/locators/qmateLocatorSrc/filters/BaseFilter.js.map +1 -1
  8. package/lib/scripts/locators/qmateLocatorSrc/filters/ChildFilter.js +5 -0
  9. package/lib/scripts/locators/qmateLocatorSrc/filters/ChildFilter.js.map +1 -1
  10. package/lib/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.js +6 -0
  11. package/lib/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.js.map +1 -1
  12. package/lib/scripts/locators/qmateLocatorSrc/filters/ElementFilter.js +13 -10
  13. package/lib/scripts/locators/qmateLocatorSrc/filters/ElementFilter.js.map +1 -1
  14. package/lib/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.js +4 -3
  15. package/lib/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.js.map +1 -1
  16. package/lib/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.js +5 -0
  17. package/lib/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.js.map +1 -1
  18. package/package.json +1 -1
  19. package/test/core/functional/locators/ancestorProperties.test.js +63 -0
  20. package/test/core/functional/locators/childProperties.test.js +48 -0
  21. package/test/core/functional/locators/descendantProperties.test.js +60 -0
  22. package/test/core/functional/locators/siblingProperties.test.js +52 -0
  23. package/test/reuse/ui5/date/pickRange.spec.js +3 -3
  24. package/test/reuse/ui5/userInteraction/clickTab.spec.js +1 -1
@@ -364,8 +364,10 @@ module.exports = {
364
364
  }
365
365
  // Public
366
366
  filter(controls) {
367
- if (Object.keys(this.elementProperties).length === 0 ||
368
- controls.length === 0) {
367
+ const isEmpty = Array.isArray(this.elementProperties)
368
+ ? this.elementProperties.length === 0
369
+ : Object.keys(this.elementProperties).length === 0;
370
+ if (isEmpty || controls.length === 0) {
369
371
  return controls;
370
372
  }
371
373
  LocatorDebug.beginLog(this.constructor.name, controls.length);
@@ -374,7 +376,10 @@ module.exports = {
374
376
  return filteredControls;
375
377
  }
376
378
  checkSingle(control) {
377
- if (Object.keys(this.elementProperties).length === 0) {
379
+ const isEmpty = Array.isArray(this.elementProperties)
380
+ ? this.elementProperties.length === 0
381
+ : Object.keys(this.elementProperties).length === 0;
382
+ if (isEmpty) {
378
383
  return true;
379
384
  }
380
385
  if (!control) {
@@ -391,6 +396,9 @@ module.exports = {
391
396
  }
392
397
  // Private
393
398
  convertRawElementPropertiesToElementProperties(rawElementProperties) {
399
+ if (Array.isArray(rawElementProperties)) {
400
+ return rawElementProperties;
401
+ }
394
402
  let elementProperties = { ...rawElementProperties };
395
403
  if (typeof rawElementProperties?.mProperties === "object") {
396
404
  elementProperties = {
@@ -403,16 +411,29 @@ module.exports = {
403
411
  }
404
412
  };
405
413
  // src/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.ts
406
- var AncestorFilter = class extends BaseFilter {
414
+ var AncestorFilter = class _AncestorFilter extends BaseFilter {
407
415
  doCheckSingle(control) {
416
+ if (Array.isArray(this.elementProperties)) {
417
+ return this.elementProperties.every((props) => {
418
+ return this.filterFactory
419
+ .getInstance(_AncestorFilter, props)
420
+ .checkSingle(control);
421
+ });
422
+ }
408
423
  const ancestors = UI5ControlHandler.getUI5Ancestors(control);
409
424
  const elementFilter = this.filterFactory.getInstance(ElementFilter, this.elementProperties);
410
425
  return ancestors.some((ancestor) => elementFilter.checkSingle(ancestor));
411
426
  }
412
427
  };
413
428
  // src/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.ts
414
- var DescendantFilter = class extends BaseFilter {
429
+ var DescendantFilter = class _DescendantFilter extends BaseFilter {
415
430
  doCheckSingle(control) {
431
+ if (Array.isArray(this.elementProperties)) {
432
+ return this.elementProperties.every((props) => {
433
+ const filter = this.filterFactory.getInstance(_DescendantFilter, props);
434
+ return filter.checkSingle(control);
435
+ });
436
+ }
416
437
  const parentElement = document.getElementById(control.getId?.());
417
438
  if (!parentElement) {
418
439
  return false;
@@ -425,8 +446,15 @@ module.exports = {
425
446
  }
426
447
  };
427
448
  // src/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.ts
428
- var SiblingFilter = class extends BaseFilter {
449
+ var SiblingFilter = class _SiblingFilter extends BaseFilter {
429
450
  doCheckSingle(control) {
451
+ if (Array.isArray(this.elementProperties)) {
452
+ return this.elementProperties.every((props) => {
453
+ return this.filterFactory
454
+ .getInstance(_SiblingFilter, props)
455
+ .checkSingle(control);
456
+ });
457
+ }
430
458
  const aSiblingControls = UI5ControlHandler.findSiblingControls(control);
431
459
  const elementFilter = this.filterFactory.getInstance(ElementFilter, this.elementProperties);
432
460
  return aSiblingControls.some((siblingControl) => elementFilter.checkSingle(siblingControl));
@@ -575,15 +603,23 @@ module.exports = {
575
603
  // src/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.ts
576
604
  var PropertiesFilter = class extends BaseFilter {
577
605
  doCheckSingle(control) {
578
- let pass = MetadataComparator.compareMetadata(this.elementProperties, control);
579
- pass &&= ElementPropertiesComparator.compareToProperties(this.elementProperties, control);
580
- pass &&= DomPropertiesComparator.compareToDomProperties(this.elementProperties.domProperties, control);
606
+ const props = this.elementProperties;
607
+ let pass = MetadataComparator.compareMetadata(props, control);
608
+ pass &&= ElementPropertiesComparator.compareToProperties(props, control);
609
+ pass &&= DomPropertiesComparator.compareToDomProperties(props.domProperties, control);
581
610
  return pass;
582
611
  }
583
612
  };
584
613
  // src/scripts/locators/qmateLocatorSrc/filters/ChildFilter.ts
585
- var ChildFilter = class extends BaseFilter {
614
+ var ChildFilter = class _ChildFilter extends BaseFilter {
586
615
  doCheckSingle(control) {
616
+ if (Array.isArray(this.elementProperties)) {
617
+ return this.elementProperties.every((props) => {
618
+ return this.filterFactory
619
+ .getInstance(_ChildFilter, props)
620
+ .checkSingle(control);
621
+ });
622
+ }
587
623
  const element = document.getElementById(control.getId());
588
624
  if (!element) {
589
625
  return false;
@@ -645,42 +681,45 @@ module.exports = {
645
681
  var ElementFilter = class _ElementFilter extends BaseFilter {
646
682
  doFiltering(controls) {
647
683
  this.checkElementProperties();
684
+ const props = this.elementProperties;
648
685
  let filteredControls = this.filterFactory
649
- .getInstance(PropertiesFilter, this.elementProperties)
686
+ .getInstance(PropertiesFilter, props)
650
687
  .filter(controls);
651
688
  filteredControls = this.filterFactory
652
- .getInstance(AncestorFilter, this.elementProperties?.ancestorProperties)
689
+ .getInstance(AncestorFilter, props.ancestorProperties)
653
690
  .filter(filteredControls);
654
691
  filteredControls = this.filterFactory
655
- .getInstance(DescendantFilter, this.elementProperties?.descendantProperties)
692
+ .getInstance(DescendantFilter, props.descendantProperties)
656
693
  .filter(filteredControls);
657
694
  filteredControls = this.filterFactory
658
- .getInstance(SiblingFilter, this.elementProperties?.siblingProperties)
695
+ .getInstance(SiblingFilter, props.siblingProperties)
659
696
  .filter(filteredControls);
660
697
  return filteredControls;
661
698
  }
662
699
  doCheckSingle(control) {
663
700
  this.checkElementProperties();
701
+ const props = this.elementProperties;
664
702
  let pass = this.filterFactory
665
- .getInstance(PropertiesFilter, this.elementProperties)
703
+ .getInstance(PropertiesFilter, props)
666
704
  .checkSingle(control);
667
705
  pass &&= this.filterFactory
668
- .getInstance(AncestorFilter, this.elementProperties?.ancestorProperties)
706
+ .getInstance(AncestorFilter, props.ancestorProperties)
669
707
  .checkSingle(control);
670
708
  pass &&= this.filterFactory
671
- .getInstance(DescendantFilter, this.elementProperties?.descendantProperties)
709
+ .getInstance(DescendantFilter, props.descendantProperties)
672
710
  .checkSingle(control);
673
711
  pass &&= this.filterFactory
674
- .getInstance(SiblingFilter, this.elementProperties?.siblingProperties)
712
+ .getInstance(SiblingFilter, props.siblingProperties)
675
713
  .checkSingle(control);
676
714
  return pass;
677
715
  }
678
716
  checkElementProperties() {
679
- if (this.elementProperties?.prevSiblingProperties ||
680
- this.elementProperties?.nextSiblingProperties ||
681
- this.elementProperties?.childProperties ||
682
- this.elementProperties?.parentProperties) {
683
- console.error(`The selector your provided ${JSON.stringify(this.elementProperties)} contains childProperties, parentProperties, prevSiblingProperties or nextSiblingProperties, please provide a valid selector without these properties`);
717
+ const props = this.elementProperties;
718
+ if (props?.prevSiblingProperties ||
719
+ props?.nextSiblingProperties ||
720
+ props?.childProperties ||
721
+ props?.parentProperties) {
722
+ console.error(`The selector your provided ${JSON.stringify(props)} contains childProperties, parentProperties, prevSiblingProperties or nextSiblingProperties, please provide a valid selector without these properties`);
684
723
  throw new Error("Nested properties can only be used for ancestorProperties, descendantProperties or siblingProperties.");
685
724
  }
686
725
  }
@@ -1 +1 @@
1
- {"version":3,"file":"qmateLocator.js","sourceRoot":"","sources":["../../../src/scripts/locators/qmateLocator.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qmateLocator.js","sourceRoot":"","sources":["../../../src/scripts/locators/qmateLocator.js"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@ const BaseFilter_1 = require("./BaseFilter");
6
6
  const ElementFilter_1 = require("./ElementFilter");
7
7
  class AncestorFilter extends BaseFilter_1.BaseFilter {
8
8
  doCheckSingle(control) {
9
+ if (Array.isArray(this.elementProperties)) {
10
+ return this.elementProperties.every((props) => {
11
+ return this.filterFactory.getInstance(AncestorFilter, props).checkSingle(control);
12
+ });
13
+ }
9
14
  const ancestors = UI5ControlHandler_1.UI5ControlHandler.getUI5Ancestors(control);
10
15
  const elementFilter = this.filterFactory.getInstance(ElementFilter_1.ElementFilter, this.elementProperties);
11
16
  return ancestors.some((ancestor) => elementFilter.checkSingle(ancestor));
@@ -1 +1 @@
1
- {"version":3,"file":"AncestorFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,cAAe,SAAQ,uBAAU;IACrC,aAAa,CAAC,OAAmB;QACtC,MAAM,SAAS,GAAG,qCAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAND,wCAMC"}
1
+ {"version":3,"file":"AncestorFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/AncestorFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,cAAe,SAAQ,uBAAU;IACrC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,qCAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAXD,wCAWC"}
@@ -1,9 +1,9 @@
1
1
  import { FilterFactory } from "../utils/FilterFactory";
2
2
  export declare abstract class BaseFilter {
3
- elementProperties: ElementProperties;
3
+ elementProperties: ElementProperties | ElementProperties[];
4
4
  filterFactory: FilterFactory;
5
5
  results: Map<string, boolean>;
6
- constructor(filterFactory: FilterFactory, rawElementProperties: ElementProperties | undefined);
6
+ constructor(filterFactory: FilterFactory, rawElementProperties: ElementProperties | ElementProperties[] | undefined);
7
7
  filter(controls: UI5Control[]): UI5Control[];
8
8
  checkSingle(control: UI5Control): boolean;
9
9
  protected abstract doCheckSingle(control: UI5Control): boolean;
@@ -13,7 +13,8 @@ class BaseFilter {
13
13
  }
14
14
  // Public
15
15
  filter(controls) {
16
- if (Object.keys(this.elementProperties).length === 0 || controls.length === 0) {
16
+ const isEmpty = Array.isArray(this.elementProperties) ? this.elementProperties.length === 0 : Object.keys(this.elementProperties).length === 0;
17
+ if (isEmpty || controls.length === 0) {
17
18
  return controls;
18
19
  }
19
20
  LocatorDebug_1.LocatorDebug.beginLog(this.constructor.name, controls.length);
@@ -22,7 +23,8 @@ class BaseFilter {
22
23
  return filteredControls;
23
24
  }
24
25
  checkSingle(control) {
25
- if (Object.keys(this.elementProperties).length === 0) {
26
+ const isEmpty = Array.isArray(this.elementProperties) ? this.elementProperties.length === 0 : Object.keys(this.elementProperties).length === 0;
27
+ if (isEmpty) {
26
28
  return true;
27
29
  }
28
30
  if (!control) {
@@ -39,6 +41,9 @@ class BaseFilter {
39
41
  }
40
42
  // Private
41
43
  convertRawElementPropertiesToElementProperties(rawElementProperties) {
44
+ if (Array.isArray(rawElementProperties)) {
45
+ return rawElementProperties;
46
+ }
42
47
  // needed for backward compatibility
43
48
  let elementProperties = { ...rawElementProperties };
44
49
  if (typeof rawElementProperties?.mProperties === "object") {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/BaseFilter.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAsB,UAAU;IAC9B,iBAAiB,CAAoB;IACrC,aAAa,CAAgB;IAC7B,OAAO,CAAuB;IAE9B,YAAY,aAA4B,EAAE,oBAAmD;QAC3F,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,8CAA8C,CAAC,oBAAoB,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;IACF,MAAM,CAAC,QAAsB;QAClC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9E,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,2BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,2BAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEpE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEM,WAAW,CAAC,OAAmB;QACpC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAY,CAAC;IAChD,CAAC;IAKS,WAAW,CAAC,QAAsB;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;IACF,8CAA8C,CAAC,oBAAmD;QACxG,oCAAoC;QACpC,IAAI,iBAAiB,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;QACpD,IAAI,OAAO,oBAAoB,EAAE,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1D,iBAAiB,GAAG;gBAClB,GAAG,oBAAoB;gBACvB,GAAG,oBAAoB,CAAC,WAAW;aACf,CAAC;YACvB,OAAO,iBAAiB,CAAC,WAAW,CAAC;QACvC,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF;AAzDD,gCAyDC"}
1
+ {"version":3,"file":"BaseFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/BaseFilter.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AAErD,MAAsB,UAAU;IAC9B,iBAAiB,CAA0C;IAC3D,aAAa,CAAgB;IAC7B,OAAO,CAAuB;IAE9B,YAAY,aAA4B,EAAE,oBAAyE;QACjH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,8CAA8C,CAAC,oBAAoB,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;IACF,MAAM,CAAC,QAAsB;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/I,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,2BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,2BAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEpE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEM,WAAW,CAAC,OAAmB;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/I,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAY,CAAC;IAChD,CAAC;IAKS,WAAW,CAAC,QAAsB;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;IACF,8CAA8C,CAAC,oBAAyE;QAC9H,IAAI,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACxC,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,oCAAoC;QACpC,IAAI,iBAAiB,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;QACpD,IAAI,OAAO,oBAAoB,EAAE,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1D,iBAAiB,GAAG;gBAClB,GAAG,oBAAoB;gBACvB,GAAG,oBAAoB,CAAC,WAAW;aACf,CAAC;YACvB,OAAO,iBAAiB,CAAC,WAAW,CAAC;QACvC,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF;AA9DD,gCA8DC"}
@@ -6,6 +6,11 @@ const BaseFilter_1 = require("./BaseFilter");
6
6
  const ElementFilter_1 = require("./ElementFilter");
7
7
  class ChildFilter extends BaseFilter_1.BaseFilter {
8
8
  doCheckSingle(control) {
9
+ if (Array.isArray(this.elementProperties)) {
10
+ return this.elementProperties.every((props) => {
11
+ return this.filterFactory.getInstance(ChildFilter, props).checkSingle(control);
12
+ });
13
+ }
9
14
  const element = document.getElementById(control.getId());
10
15
  if (!element) {
11
16
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"ChildFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ChildFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,WAAY,SAAQ,uBAAU;IAClC,aAAa,CAAC,OAAmB;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAVD,kCAUC"}
1
+ {"version":3,"file":"ChildFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ChildFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,WAAY,SAAQ,uBAAU;IAClC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9F,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAfD,kCAeC"}
@@ -6,6 +6,12 @@ const BaseFilter_1 = require("./BaseFilter");
6
6
  const ElementFilter_1 = require("./ElementFilter");
7
7
  class DescendantFilter extends BaseFilter_1.BaseFilter {
8
8
  doCheckSingle(control) {
9
+ if (Array.isArray(this.elementProperties)) {
10
+ return this.elementProperties.every((props) => {
11
+ const filter = this.filterFactory.getInstance(DescendantFilter, props);
12
+ return filter.checkSingle(control);
13
+ });
14
+ }
9
15
  const parentElement = document.getElementById(control.getId?.());
10
16
  if (!parentElement) {
11
17
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"DescendantFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpG,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,IAAI,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,UAAU,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QACpF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAZD,4CAYC"}
1
+ {"version":3,"file":"DescendantFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/DescendantFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpG,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,IAAI,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,UAAU,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QACpF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAnBD,4CAmBC"}
@@ -14,23 +14,26 @@ const FilterFactory_1 = require("../utils/FilterFactory");
14
14
  class ElementFilter extends BaseFilter_1.BaseFilter {
15
15
  doFiltering(controls) {
16
16
  this.checkElementProperties();
17
- let filteredControls = this.filterFactory.getInstance(PropertiesFilter_1.PropertiesFilter, this.elementProperties).filter(controls);
18
- filteredControls = this.filterFactory.getInstance(AncestorFilter_1.AncestorFilter, this.elementProperties?.ancestorProperties).filter(filteredControls);
19
- filteredControls = this.filterFactory.getInstance(DescendantFilter_1.DescendantFilter, this.elementProperties?.descendantProperties).filter(filteredControls);
20
- filteredControls = this.filterFactory.getInstance(SiblingFilter_1.SiblingFilter, this.elementProperties?.siblingProperties).filter(filteredControls);
17
+ const props = this.elementProperties;
18
+ let filteredControls = this.filterFactory.getInstance(PropertiesFilter_1.PropertiesFilter, props).filter(controls);
19
+ filteredControls = this.filterFactory.getInstance(AncestorFilter_1.AncestorFilter, props.ancestorProperties).filter(filteredControls);
20
+ filteredControls = this.filterFactory.getInstance(DescendantFilter_1.DescendantFilter, props.descendantProperties).filter(filteredControls);
21
+ filteredControls = this.filterFactory.getInstance(SiblingFilter_1.SiblingFilter, props.siblingProperties).filter(filteredControls);
21
22
  return filteredControls;
22
23
  }
23
24
  doCheckSingle(control) {
24
25
  this.checkElementProperties();
25
- let pass = this.filterFactory.getInstance(PropertiesFilter_1.PropertiesFilter, this.elementProperties).checkSingle(control);
26
- pass &&= this.filterFactory.getInstance(AncestorFilter_1.AncestorFilter, this.elementProperties?.ancestorProperties).checkSingle(control);
27
- pass &&= this.filterFactory.getInstance(DescendantFilter_1.DescendantFilter, this.elementProperties?.descendantProperties).checkSingle(control);
28
- pass &&= this.filterFactory.getInstance(SiblingFilter_1.SiblingFilter, this.elementProperties?.siblingProperties).checkSingle(control);
26
+ const props = this.elementProperties;
27
+ let pass = this.filterFactory.getInstance(PropertiesFilter_1.PropertiesFilter, props).checkSingle(control);
28
+ pass &&= this.filterFactory.getInstance(AncestorFilter_1.AncestorFilter, props.ancestorProperties).checkSingle(control);
29
+ pass &&= this.filterFactory.getInstance(DescendantFilter_1.DescendantFilter, props.descendantProperties).checkSingle(control);
30
+ pass &&= this.filterFactory.getInstance(SiblingFilter_1.SiblingFilter, props.siblingProperties).checkSingle(control);
29
31
  return pass;
30
32
  }
31
33
  checkElementProperties() {
32
- if (this.elementProperties?.prevSiblingProperties || this.elementProperties?.nextSiblingProperties || this.elementProperties?.childProperties || this.elementProperties?.parentProperties) {
33
- console.error(`The selector your provided ${JSON.stringify(this.elementProperties)} contains childProperties, parentProperties, prevSiblingProperties or nextSiblingProperties, please provide a valid selector without these properties`);
34
+ const props = this.elementProperties;
35
+ if (props?.prevSiblingProperties || props?.nextSiblingProperties || props?.childProperties || props?.parentProperties) {
36
+ console.error(`The selector your provided ${JSON.stringify(props)} contains childProperties, parentProperties, prevSiblingProperties or nextSiblingProperties, please provide a valid selector without these properties`);
34
37
  throw new Error("Nested properties can only be used for ancestorProperties, descendantProperties or siblingProperties.");
35
38
  }
36
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ElementFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ElementFilter.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,yDAAsD;AACtD,mDAAgD;AAChD,yDAAsD;AACtD,+CAA4C;AAC5C,iDAA8C;AAC9C,2DAAwD;AACxD,2DAAwD;AACxD,6CAA0C;AAC1C,0DAAuD;AAEvD,MAAa,aAAc,SAAQ,uBAAU;IACjC,WAAW,CAAC,QAAsB;QAC1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,mCAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjH,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,+BAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACvI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,mCAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3I,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrI,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,OAAmB;QACtC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,mCAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzG,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,+BAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzH,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,mCAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7H,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE,qBAAqB,IAAI,IAAI,CAAC,iBAAiB,EAAE,qBAAqB,IAAI,IAAI,CAAC,iBAAiB,EAAE,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;YAC1L,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,uJAAuJ,CAAC,CAAC;YAC3O,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;QAC3H,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,WAAwB,EAAE,QAAsB;QAC7E,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC1C,IAAI,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChH,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,2BAAY,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClH,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,+BAAc,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACtH,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,yBAAW,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChH,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,mCAAgB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1H,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpH,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,qCAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5H,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,qCAAiB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5H,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAxCD,sCAwCC"}
1
+ {"version":3,"file":"ElementFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/ElementFilter.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,10 @@ const MetadataComparator_1 = require("../comparators/MetadataComparator");
7
7
  const BaseFilter_1 = require("./BaseFilter");
8
8
  class PropertiesFilter extends BaseFilter_1.BaseFilter {
9
9
  doCheckSingle(control) {
10
- let pass = MetadataComparator_1.MetadataComparator.compareMetadata(this.elementProperties, control);
11
- pass &&= ElementPropertiesComparator_1.ElementPropertiesComparator.compareToProperties(this.elementProperties, control);
12
- pass &&= DomPropertiesComparator_1.DomPropertiesComparator.compareToDomProperties(this.elementProperties.domProperties, control);
10
+ const props = this.elementProperties;
11
+ let pass = MetadataComparator_1.MetadataComparator.compareMetadata(props, control);
12
+ pass &&= ElementPropertiesComparator_1.ElementPropertiesComparator.compareToProperties(props, control);
13
+ pass &&= DomPropertiesComparator_1.DomPropertiesComparator.compareToDomProperties(props.domProperties, control);
13
14
  return pass;
14
15
  }
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PropertiesFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.ts"],"names":[],"mappings":";;;AAAA,oFAAiF;AACjF,4FAAyF;AACzF,0EAAuE;AACvE,6CAA0C;AAE1C,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,IAAI,IAAI,GAAG,uCAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,KAAK,yDAA2B,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC1F,IAAI,KAAK,iDAAuB,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAPD,4CAOC"}
1
+ {"version":3,"file":"PropertiesFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/PropertiesFilter.ts"],"names":[],"mappings":";;;AAAA,oFAAiF;AACjF,4FAAyF;AACzF,0EAAuE;AACvE,6CAA0C;AAE1C,MAAa,gBAAiB,SAAQ,uBAAU;IACvC,aAAa,CAAC,OAAmB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAsC,CAAC;QAC1D,IAAI,IAAI,GAAG,uCAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,KAAK,yDAA2B,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,KAAK,iDAAuB,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AARD,4CAQC"}
@@ -6,6 +6,11 @@ const BaseFilter_1 = require("./BaseFilter");
6
6
  const ElementFilter_1 = require("./ElementFilter");
7
7
  class SiblingFilter extends BaseFilter_1.BaseFilter {
8
8
  doCheckSingle(control) {
9
+ if (Array.isArray(this.elementProperties)) {
10
+ return this.elementProperties.every((props) => {
11
+ return this.filterFactory.getInstance(SiblingFilter, props).checkSingle(control);
12
+ });
13
+ }
9
14
  const aSiblingControls = UI5ControlHandler_1.UI5ControlHandler.findSiblingControls(control);
10
15
  const elementFilter = this.filterFactory.getInstance(ElementFilter_1.ElementFilter, this.elementProperties);
11
16
  return aSiblingControls.some((siblingControl) => elementFilter.checkSingle(siblingControl));
@@ -1 +1 @@
1
- {"version":3,"file":"SiblingFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,aAAc,SAAQ,uBAAU;IACpC,aAAa,CAAC,OAAmB;QACtC,MAAM,gBAAgB,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;AAND,sCAMC"}
1
+ {"version":3,"file":"SiblingFilter.js","sourceRoot":"","sources":["../../../../../src/scripts/locators/qmateLocatorSrc/filters/SiblingFilter.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAC/D,6CAA0C;AAC1C,mDAAgD;AAEhD,MAAa,aAAc,SAAQ,uBAAU;IACpC,aAAa,CAAC,OAAmB;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,gBAAgB,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,6BAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;AAXD,sCAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap_oss/wdio-qmate-service",
3
- "version": "3.6.3",
3
+ "version": "3.7.0",
4
4
  "author": "SAP SE",
5
5
  "types": "./@types/**.d.ts",
6
6
  "main": "./lib/index.js",
@@ -100,4 +100,67 @@ describe("webdriver.io page locator test", function () {
100
100
  await expect(browser.uiControl(wrongSelectorWithoutElementProperties))
101
101
  .rejects.toThrowError(/No visible elements found/);
102
102
  });
103
+
104
+ it("should access element by elementProperties and multiple ancestorProperties as array - AND (happy case)", async function () {
105
+ await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
106
+ await handleCookiesConsent();
107
+ await util.browser.switchToIframe("[id='sampleFrame']");
108
+
109
+ // The Reject button lives inside both a sap.m.Toolbar and a sap.m.Page - both ancestors must exist
110
+ const selector = {
111
+ "elementProperties": {
112
+ "viewName": "sap.m.sample.Button.Page",
113
+ "metadata": "sap.m.Button",
114
+ "text": "Reject"
115
+ },
116
+ "ancestorProperties": [
117
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Toolbar" },
118
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Page" }
119
+ ]
120
+ };
121
+ const elem = await browser.uiControl(selector);
122
+ await expect(elem).toBeDisplayed();
123
+ await expect(elem).toBeClickable();
124
+ });
125
+
126
+ it("should fail when one entry of ancestorProperties array does not match - AND (unhappy case)", async function () {
127
+ await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
128
+ await handleCookiesConsent();
129
+ await util.browser.switchToIframe("[id='sampleFrame']");
130
+
131
+ // Second entry has a non-existent ancestor - AND logic means the whole selector fails
132
+ const selector = {
133
+ "elementProperties": {
134
+ "viewName": "sap.m.sample.Button.Page",
135
+ "metadata": "sap.m.Button",
136
+ "text": "Reject"
137
+ },
138
+ "ancestorProperties": [
139
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Toolbar" },
140
+ { "metadata": "sap.m.Table" }
141
+ ]
142
+ };
143
+ await expect(browser.uiControl(selector, 0, 1000))
144
+ .rejects.toThrowError(/No visible elements found/);
145
+ });
146
+
147
+ it("should return multiple elements when multiple elements each satisfy array ancestorProperties - AND (multiple results)", async function () {
148
+ await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
149
+ await handleCookiesConsent();
150
+ await util.browser.switchToIframe("[id='sampleFrame']");
151
+
152
+ // All buttons inside a Toolbar are also inside a Page - both ancestor conditions satisfied by multiple buttons
153
+ const selector = {
154
+ "elementProperties": {
155
+ "viewName": "sap.m.sample.Button.Page",
156
+ "metadata": "sap.m.Button"
157
+ },
158
+ "ancestorProperties": [
159
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Toolbar" },
160
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Page" }
161
+ ]
162
+ };
163
+ const elems = await browser.uiControls(selector);
164
+ expect(elems.length).toBeGreaterThan(1);
165
+ });
103
166
  });
@@ -39,4 +39,52 @@ describe("webdriver.io page locator test", function () {
39
39
  await expect(browser.uiControl(wrongSelectorWithoutElementProperties))
40
40
  .rejects.toThrowError(/No visible elements found/);
41
41
  });
42
+
43
+ it("should access element by elementProperties and multiple childProperties as array - AND (happy case)", async function () {
44
+ // The toolbar has both a Default button and a Reject button as direct children - both must match
45
+ const selector = {
46
+ "elementProperties": {
47
+ "viewName": "sap.m.sample.Button.Page",
48
+ "metadata": "sap.m.Toolbar"
49
+ },
50
+ "childProperties": [
51
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
52
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Reject" }
53
+ ]
54
+ };
55
+ const elem = await browser.uiControl(selector);
56
+ await expect(elem).toBeDisplayed();
57
+ });
58
+
59
+ it("should fail when one entry of childProperties array does not match - AND (unhappy case)", async function () {
60
+ // Second entry has a non-existent child - AND logic means the whole selector fails
61
+ const selector = {
62
+ "elementProperties": {
63
+ "viewName": "sap.m.sample.Button.Page",
64
+ "metadata": "sap.m.Toolbar"
65
+ },
66
+ "childProperties": [
67
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
68
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "this-button-does-not-exist" }
69
+ ]
70
+ };
71
+ await expect(browser.uiControl(selector, 0, 1000))
72
+ .rejects.toThrowError(/No visible elements found/);
73
+ });
74
+
75
+ it("should return multiple elements when multiple parents each satisfy array childProperties - AND (multiple results)", async function () {
76
+ // Multiple Toolbars on the page each have both a Button and a ToolbarSpacer as direct children
77
+ const selector = {
78
+ "elementProperties": {
79
+ "viewName": "sap.m.sample.Button.Page",
80
+ "metadata": "sap.m.Toolbar"
81
+ },
82
+ "childProperties": [
83
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button" },
84
+ { "metadata": "sap.m.ToolbarSpacer" }
85
+ ]
86
+ };
87
+ const elems = await browser.uiControls(selector);
88
+ expect(elems.length).toBeGreaterThan(1);
89
+ });
42
90
  });
@@ -107,4 +107,64 @@ describe("webdriver.io page locator test", function () {
107
107
  .rejects.toThrowError(/No visible elements found/);
108
108
  });
109
109
 
110
+ it("should access element by elementProperties and multiple descendantProperties as array - AND (happy case)", async function () {
111
+ await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
112
+ await handleCookiesConsent();
113
+ await util.browser.switchToIframe("[id='sampleFrame']");
114
+
115
+ // The toolbar contains both a "Default" button and a "Reject" button as descendants - both must match
116
+ const selector = {
117
+ "elementProperties": {
118
+ "viewName": "sap.m.sample.Button.Page",
119
+ "metadata": "sap.m.Toolbar"
120
+ },
121
+ "descendantProperties": [
122
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
123
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Reject" }
124
+ ]
125
+ };
126
+ const elem = await browser.uiControl(selector);
127
+ await expect(elem).toBeDisplayed();
128
+ });
129
+
130
+ it("should fail when one entry of descendantProperties array does not match - AND (unhappy case)", async function () {
131
+ await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
132
+ await handleCookiesConsent();
133
+ await util.browser.switchToIframe("[id='sampleFrame']");
134
+
135
+ // Second entry has a non-existent text - AND logic means the whole selector fails
136
+ const selector = {
137
+ "elementProperties": {
138
+ "viewName": "sap.m.sample.Button.Page",
139
+ "metadata": "sap.m.Toolbar"
140
+ },
141
+ "descendantProperties": [
142
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "Default" },
143
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button", "text": "this-button-does-not-exist" }
144
+ ]
145
+ };
146
+ await expect(browser.uiControl(selector, 0, 1000))
147
+ .rejects.toThrowError(/No visible elements found/);
148
+ });
149
+
150
+ it("should return multiple elements when multiple parents each satisfy array descendantProperties - AND (multiple results)", async function () {
151
+ await browser.navigateTo(`${BASE_URL}/#/entity/sap.m.Button/sample/sap.m.sample.Button`);
152
+ await handleCookiesConsent();
153
+ await util.browser.switchToIframe("[id='sampleFrame']");
154
+
155
+ // Multiple FlexItemData elements exist on this page (one per button).
156
+ // Using a single-entry array exercises the array code path and should return all FlexItemData with a Button descendant.
157
+ const selector = {
158
+ "elementProperties": {
159
+ "viewName": "sap.m.sample.Button.Page",
160
+ "metadata": "sap.m.FlexItemData"
161
+ },
162
+ "descendantProperties": [
163
+ { "viewName": "sap.m.sample.Button.Page", "metadata": "sap.m.Button" }
164
+ ]
165
+ };
166
+ const elems = await browser.uiControls(selector);
167
+ expect(elems.length).toBeGreaterThan(1);
168
+ });
169
+
110
170
  });
@@ -112,6 +112,58 @@ describe("webdriver.io page locator test", function () {
112
112
  };
113
113
  await expect(browser.uiControl(wrongProperties)).rejects.toThrowError(/No visible elements found/);
114
114
  });
115
+
116
+ it("should access element by elementProperties and multiple siblingProperties as array - AND (happy case)", async function () {
117
+ // The AC list item has CSA as a sibling, and also has other StandardListItem siblings - both conditions must match
118
+ const selector = {
119
+ "elementProperties": {
120
+ "viewName": "sap.ui.demo.cart.view.Home",
121
+ "metadata": "sap.m.StandardListItem",
122
+ "bindingContextPath": "/ProductCategories*'AC')"
123
+ },
124
+ "siblingProperties": [
125
+ { "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'CSA')" },
126
+ { "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem" }
127
+ ]
128
+ };
129
+ const elem = await browser.uiControl(selector);
130
+ await expect(elem).toBeDisplayed();
131
+ await expect(elem).toBeClickable();
132
+ });
133
+
134
+ it("should fail when one entry of siblingProperties array does not match - AND (unhappy case)", async function () {
135
+ // Second entry points to a non-existent sibling - AND logic means the whole selector fails
136
+ const selector = {
137
+ "elementProperties": {
138
+ "viewName": "sap.ui.demo.cart.view.Home",
139
+ "metadata": "sap.m.StandardListItem",
140
+ "bindingContextPath": "/ProductCategories*'AC')"
141
+ },
142
+ "siblingProperties": [
143
+ { "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'CSA')" },
144
+ { "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'THIS-DOES-NOT-EXIST')" }
145
+ ]
146
+ };
147
+ await expect(browser.uiControl(selector, 0, 1000))
148
+ .rejects.toThrowError(/No visible elements found/);
149
+ });
150
+
151
+ it("should return multiple elements when multiple elements each satisfy array siblingProperties - AND (multiple results)", async function () {
152
+ // All category items (except AC and CSA themselves) have both AC and CSA as siblings - returns multiple items
153
+ const selector = {
154
+ "elementProperties": {
155
+ "viewName": "sap.ui.demo.cart.view.Home",
156
+ "metadata": "sap.m.StandardListItem"
157
+ },
158
+ "siblingProperties": [
159
+ { "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'CSA')" },
160
+ { "viewName": "sap.ui.demo.cart.view.Home", "metadata": "sap.m.StandardListItem", "bindingContextPath": "/ProductCategories*'AC')" }
161
+ ]
162
+ };
163
+ const elems = await browser.uiControls(selector);
164
+ expect(elems.length).toBeGreaterThan(1);
165
+ });
166
+
115
167
  });
116
168
 
117
169
 
@@ -40,7 +40,7 @@ describe("date - pickRange - when DateRangeSelection do not have any value", fun
40
40
 
41
41
  const startRange = getBorderOfRange(start);
42
42
  const endRange = getBorderOfRange(end);
43
- const rangeAsString = `${startRange} - ${endRange}`;
43
+ const rangeAsString = `${startRange} ${endRange}`;
44
44
 
45
45
  common.assertion.expectEqual(arrivedRange, rangeAsString);
46
46
  });
@@ -77,7 +77,7 @@ describe("date - pickRange - with index as 2", function () {
77
77
 
78
78
  const startRange = getBorderOfRange(start);
79
79
  const endRange = getBorderOfRange(end);
80
- const rangeAsString = `${startRange} - ${endRange}`;
80
+ const rangeAsString = `${startRange} ${endRange}`;
81
81
 
82
82
  common.assertion.expectEqual(arrivedRange, rangeAsString);
83
83
  });
@@ -123,7 +123,7 @@ describe("date - pickRange - with icon as selector", function () {
123
123
 
124
124
  const startRange = getBorderOfRange(start);
125
125
  const endRange = getBorderOfRange(end);
126
- const rangeAsString = `${startRange} - ${endRange}`;
126
+ const rangeAsString = `${startRange} ${endRange}`;
127
127
 
128
128
  common.assertion.expectEqual(arrivedRange, rangeAsString);
129
129
  });
@@ -58,7 +58,7 @@ describe("userInteraction - clickTab - multiple select values", function () {
58
58
  title: "Summary"
59
59
  },
60
60
  ancestorProperties: {
61
- metadata: "sap.uxap.ObjectPageSection",
61
+ metadata: "sap.ui.documentation.ObjectPageSection",
62
62
  viewName: "sap.ui.documentation.sdk.view.SubApiDetail",
63
63
  title: "Events"
64
64
  }