sefiutils 1.0.3 → 1.0.5

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.
@@ -6,7 +6,7 @@ function getButtonsAndHRefs() {
6
6
  if ( ((e.onclick || e.onClick) && !Object.keys(e).find(key => key.startsWith("__reactContainer$")))
7
7
  || (e.tagName==='A' && e.href)
8
8
  || (e.tagName==='BUTTON' && e.type!=='hidden')
9
- || (e.tagName==='INPUT' && ["button", "submit"].includes(e.type))
9
+ || (e.tagName==='INPUT' && ["button", "submit"].includes(e.type?.toLowerCase()))
10
10
  ) {
11
11
  clickable.push(e);
12
12
  }
@@ -10,4 +10,9 @@ export declare function getReactComponentTree(driver: WebDriver): Promise<Compon
10
10
  export declare function dumpComponentTree(node: ComponentNode): string;
11
11
  export declare function findInComponentTree(node: ComponentNode, predicate: (node: ComponentNode) => boolean): ComponentNode | undefined;
12
12
  export declare function findAllInComponentTree(node: ComponentNode, predicate: (node: ComponentNode) => boolean): ComponentNode[];
13
+ /**
14
+ * Returns a path with preceding siblings from startComponent to endComponent, including both.
15
+ * If no path exists, an empty array is returned.
16
+ */
17
+ export declare function retrieveComponentPath(root: ComponentNode | undefined, startComponent: string, endComponent: string): string[];
13
18
  //# sourceMappingURL=fiberUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fiberUtils.d.ts","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,aAAa;IAE1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAIrF;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,UAWpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAAG,aAAa,GAAG,SAAS,CAW/H;AACD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,mBActG"}
1
+ {"version":3,"file":"fiberUtils.d.ts","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,aAAa;IAE1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC5B;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAIrF;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,UAWpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAAG,aAAa,GAAG,SAAS,CAW/H;AACD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,mBActG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CA4B7H"}
package/lib/fiberUtils.js CHANGED
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.findAllInComponentTree = exports.findInComponentTree = exports.dumpComponentTree = exports.getReactComponentTree = void 0;
12
+ exports.retrieveComponentPath = exports.findAllInComponentTree = exports.findInComponentTree = exports.dumpComponentTree = exports.getReactComponentTree = void 0;
13
13
  const seUtils_1 = require("./seUtils");
14
14
  function getReactComponentTree(driver) {
15
15
  return __awaiter(this, void 0, void 0, function* () {
@@ -57,4 +57,36 @@ function findAllInComponentTree(node, predicate) {
57
57
  }
58
58
  }
59
59
  exports.findAllInComponentTree = findAllInComponentTree;
60
+ /**
61
+ * Returns a path with preceding siblings from startComponent to endComponent, including both.
62
+ * If no path exists, an empty array is returned.
63
+ */
64
+ function retrieveComponentPath(root, startComponent, endComponent) {
65
+ if (!root) {
66
+ throw new Error("No components found.");
67
+ }
68
+ const startNodes = findAllInComponentTree(root, (node) => node.name === startComponent);
69
+ for (const start of startNodes) {
70
+ const path = findEnd(start, []);
71
+ if (path) {
72
+ return path;
73
+ }
74
+ }
75
+ return [];
76
+ function findEnd(node, path) {
77
+ const newPath = [...path, node.name];
78
+ if (node.name === endComponent) {
79
+ return newPath;
80
+ }
81
+ for (const child of node.children) {
82
+ const foundPath = findEnd(child, newPath);
83
+ if (foundPath) {
84
+ return foundPath;
85
+ }
86
+ newPath.push(child.name);
87
+ }
88
+ return undefined;
89
+ }
90
+ }
91
+ exports.retrieveComponentPath = retrieveComponentPath;
60
92
  //# sourceMappingURL=fiberUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fiberUtils.js","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAAuC;AAYvC,SAAsB,qBAAqB,CAAC,MAAiB;;QACzD,MAAM,OAAO,GAAkB,MAAM,IAAA,oBAAU,EAAC,MAAM,EAClD,sBAAsB,EAAE,8BAA8B,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC;IACnB,CAAC;CAAA;AAJD,sDAIC;AAGD,SAAgB,iBAAiB,CAAC,IAAmB;IACjD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,IAAI,CAAC,CAAA;IACV,OAAO,GAAG,CAAC;IAEX,SAAS,IAAI,CAAC,IAAmB,EAAE,SAAiB,EAAE;QAClD,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC5H,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;AACL,CAAC;AAXD,8CAWC;AAED,SAAgB,mBAAmB,CAAC,IAAmB,EAAE,SAA2C;IAChG,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC;KACf;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;QAC/B,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAXD,kDAWC;AACD,SAAgB,sBAAsB,CAAC,IAAmB,EAAE,SAA2C;IAEnG,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;IAEX,SAAS,OAAO,CAAC,IAAmB;QAChC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YACjB,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,CAAC;SAClB;IACL,CAAC;AACL,CAAC;AAdD,wDAcC"}
1
+ {"version":3,"file":"fiberUtils.js","sourceRoot":"","sources":["../src/fiberUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sefiutils",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Utilities (and Jest tests) for Selenium Webdriver Tests and some React tools as well",
5
5
  "author": "Jens von Pilgrim <jens.vonpilgrim@bht-berlin.de>",
6
6
  "license": "EPL-2.0",