sefiutils 1.0.4 → 1.0.6

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.
@@ -10,4 +10,15 @@ 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 true if a component path exists in the component tree with
15
+ * components names as path elements. Note that there might be
16
+ * components between the path elements.
17
+ */
18
+ export declare function componentPathExists(root: ComponentNode | undefined, path: string[]): boolean;
19
+ /**
20
+ * Returns a path with preceding siblings from startComponent to endComponent, including both.
21
+ * If no path exists, an empty array is returned.
22
+ */
23
+ export declare function retrieveComponentPath(root: ComponentNode | undefined, startComponent: string, endComponent: string): string[];
13
24
  //# 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;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WA2BlF;AAGD;;;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.componentPathExists = 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,68 @@ function findAllInComponentTree(node, predicate) {
57
57
  }
58
58
  }
59
59
  exports.findAllInComponentTree = findAllInComponentTree;
60
+ /**
61
+ * Returns true if a component path exists in the component tree with
62
+ * components names as path elements. Note that there might be
63
+ * components between the path elements.
64
+ */
65
+ function componentPathExists(root, path) {
66
+ if (!root) {
67
+ throw new Error("No components found.");
68
+ }
69
+ if (path.length === 0) {
70
+ return true;
71
+ }
72
+ const namePredicate = (node) => node.name === path[0];
73
+ if (namePredicate(root)) {
74
+ if (path.length === 1) {
75
+ return true;
76
+ }
77
+ const rest = path.slice(1);
78
+ for (const child of root.children) {
79
+ if (componentPathExists(child, rest)) {
80
+ return true;
81
+ }
82
+ }
83
+ }
84
+ for (const child of root.children) {
85
+ if (componentPathExists(child, path)) {
86
+ return true;
87
+ }
88
+ }
89
+ return false;
90
+ }
91
+ exports.componentPathExists = componentPathExists;
92
+ /**
93
+ * Returns a path with preceding siblings from startComponent to endComponent, including both.
94
+ * If no path exists, an empty array is returned.
95
+ */
96
+ function retrieveComponentPath(root, startComponent, endComponent) {
97
+ if (!root) {
98
+ throw new Error("No components found.");
99
+ }
100
+ const startNodes = findAllInComponentTree(root, (node) => node.name === startComponent);
101
+ for (const start of startNodes) {
102
+ const path = findEnd(start, []);
103
+ if (path) {
104
+ return path;
105
+ }
106
+ }
107
+ return [];
108
+ function findEnd(node, path) {
109
+ const newPath = [...path, node.name];
110
+ if (node.name === endComponent) {
111
+ return newPath;
112
+ }
113
+ for (const child of node.children) {
114
+ const foundPath = findEnd(child, newPath);
115
+ if (foundPath) {
116
+ return foundPath;
117
+ }
118
+ newPath.push(child.name);
119
+ }
120
+ return undefined;
121
+ }
122
+ }
123
+ exports.retrieveComponentPath = retrieveComponentPath;
60
124
  //# 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.4",
3
+ "version": "1.0.6",
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",