@appium/fake-driver 5.1.3 → 5.1.4

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 (40) hide show
  1. package/build/lib/commands/alert.d.ts +58 -310
  2. package/build/lib/commands/alert.d.ts.map +1 -1
  3. package/build/lib/commands/alert.js +58 -69
  4. package/build/lib/commands/alert.js.map +1 -1
  5. package/build/lib/commands/contexts.d.ts +81 -330
  6. package/build/lib/commands/contexts.d.ts.map +1 -1
  7. package/build/lib/commands/contexts.js +75 -84
  8. package/build/lib/commands/contexts.js.map +1 -1
  9. package/build/lib/commands/element.d.ts +146 -315
  10. package/build/lib/commands/element.d.ts.map +1 -1
  11. package/build/lib/commands/element.js +134 -98
  12. package/build/lib/commands/element.js.map +1 -1
  13. package/build/lib/commands/find.d.ts +83 -327
  14. package/build/lib/commands/find.d.ts.map +1 -1
  15. package/build/lib/commands/find.js +93 -97
  16. package/build/lib/commands/find.js.map +1 -1
  17. package/build/lib/commands/general.d.ts +174 -332
  18. package/build/lib/commands/general.d.ts.map +1 -1
  19. package/build/lib/commands/general.js +119 -90
  20. package/build/lib/commands/general.js.map +1 -1
  21. package/build/lib/commands/index.d.ts +5 -1523
  22. package/build/lib/commands/index.d.ts.map +1 -1
  23. package/build/lib/commands/index.js +14 -14
  24. package/build/lib/commands/index.js.map +1 -1
  25. package/build/lib/driver.d.ts +80 -15
  26. package/build/lib/driver.d.ts.map +1 -1
  27. package/build/lib/driver.js +74 -24
  28. package/build/lib/driver.js.map +1 -1
  29. package/build/lib/types.d.ts +1 -24
  30. package/build/lib/types.d.ts.map +1 -1
  31. package/build/tsconfig.tsbuildinfo +1 -1
  32. package/lib/commands/alert.js +58 -67
  33. package/lib/commands/contexts.js +72 -81
  34. package/lib/commands/element.js +135 -94
  35. package/lib/commands/find.js +94 -98
  36. package/lib/commands/general.js +119 -91
  37. package/lib/commands/index.js +5 -13
  38. package/lib/driver.js +76 -20
  39. package/lib/types.ts +1 -29
  40. package/package.json +2 -2
@@ -3,112 +3,148 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ElementMixin = void 0;
7
6
  const lodash_1 = __importDefault(require("lodash"));
8
7
  const driver_1 = require("appium/driver");
9
- /**
10
- * @template {Class<import('../types').IContextsCommands & import('../types').IAlertCommands>} T
11
- * @param {T} Base
12
- */
13
- function ElementMixin(Base) {
8
+ exports.default = {
14
9
  /**
15
- * @implements {IElementCommands}
10
+ * @this {FakeDriver}
16
11
  */
17
- class ElementCommands extends Base {
18
- constructor() {
19
- super(...arguments);
20
- this.getLocationInView = this.getLocation;
21
- }
22
- getElements(elIds) {
23
- for (let elId of elIds) {
24
- if (!lodash_1.default.has(this.elMap, elId)) {
25
- throw new driver_1.errors.StaleElementReferenceError();
26
- }
27
- }
28
- return elIds.map((e) => this.elMap[e]);
29
- }
30
- getElement(elId) {
31
- return this.getElements([elId])[0];
32
- }
33
- async getName(elementId) {
34
- let el = this.getElement(elementId);
35
- return el.tagName;
36
- }
37
- async elementDisplayed(elementId) {
38
- let el = this.getElement(elementId);
39
- return el.isVisible();
40
- }
41
- async elementEnabled(elementId) {
42
- let el = this.getElement(elementId);
43
- return el.isEnabled();
44
- }
45
- async elementSelected(elementId) {
46
- let el = this.getElement(elementId);
47
- return el.isSelected();
48
- }
49
- async setValue(keys, elementId) {
50
- let value = keys;
51
- if (keys instanceof Array) {
52
- value = keys.join('');
53
- }
54
- let el = this.getElement(elementId);
55
- if (el.type !== 'MockInputField') {
56
- throw new driver_1.errors.InvalidElementStateError();
12
+ getElements(elIds) {
13
+ for (let elId of elIds) {
14
+ if (!lodash_1.default.has(this.elMap, elId)) {
15
+ throw new driver_1.errors.StaleElementReferenceError();
57
16
  }
58
- el.setAttr('value', value);
59
17
  }
60
- async getText(elementId) {
61
- let el = this.getElement(elementId);
62
- return el.getAttr('value');
63
- }
64
- async clear(elementId) {
65
- await this.setValue('', elementId);
66
- }
67
- /**
68
- * This comment should be displayed instead of the one from ExternalDriver
69
- * @param {string} elementId
70
- */
71
- async click(elementId) {
72
- this.assertNoAlert();
73
- let el = this.getElement(elementId);
74
- if (!el.isVisible()) {
75
- throw new driver_1.errors.InvalidElementStateError();
76
- }
77
- el.click();
78
- this.focusedElId = elementId;
79
- }
80
- async getAttribute(attr, elementId) {
81
- let el = this.getElement(elementId);
82
- return el.getAttr(attr);
83
- }
84
- getElementRect(elementId) {
85
- let el = this.getElement(elementId);
86
- return el.getElementRect();
87
- }
88
- getSize(elementId) {
89
- let el = this.getElement(elementId);
90
- return el.getSize();
91
- }
92
- equalsElement(el1Id, el2Id) {
93
- let el1 = this.getElement(el1Id);
94
- let el2 = this.getElement(el2Id);
95
- return el1.equals(el2);
18
+ return elIds.map((e) => this.elMap[e]);
19
+ },
20
+ /**
21
+ * @this {FakeDriver}
22
+ */
23
+ getElement(elId) {
24
+ return this.getElements([elId])[0];
25
+ },
26
+ /**
27
+ * @this {FakeDriver}
28
+ */
29
+ async getName(elementId) {
30
+ let el = this.getElement(elementId);
31
+ return el.tagName;
32
+ },
33
+ /**
34
+ * @this {FakeDriver}
35
+ */
36
+ async elementDisplayed(elementId) {
37
+ let el = this.getElement(elementId);
38
+ return el.isVisible();
39
+ },
40
+ /**
41
+ * @this {FakeDriver}
42
+ */
43
+ async elementEnabled(elementId) {
44
+ let el = this.getElement(elementId);
45
+ return el.isEnabled();
46
+ },
47
+ /**
48
+ * @this {FakeDriver}
49
+ */
50
+ async elementSelected(elementId) {
51
+ let el = this.getElement(elementId);
52
+ return el.isSelected();
53
+ },
54
+ /**
55
+ * @this {FakeDriver}
56
+ */
57
+ async setValue(keys, elementId) {
58
+ let value = keys;
59
+ if (keys instanceof Array) {
60
+ value = keys.join('');
96
61
  }
97
- async getCssProperty(prop, elementId) {
98
- this.assertWebviewContext();
99
- let el = this.getElement(elementId);
100
- return el.getCss(prop);
62
+ let el = this.getElement(elementId);
63
+ if (el.type !== 'MockInputField') {
64
+ throw new driver_1.errors.InvalidElementStateError();
101
65
  }
102
- }
103
- return ElementCommands;
104
- }
105
- exports.ElementMixin = ElementMixin;
106
- /**
107
- * @typedef {import('../driver').FakeDriverCore} FakeDriverCore
108
- * @typedef {import('../types').IElementCommands} IElementCommands
109
- */
66
+ el.setAttr('value', value);
67
+ },
68
+ /**
69
+ * @this {FakeDriver}
70
+ */
71
+ async getText(elementId) {
72
+ let el = this.getElement(elementId);
73
+ return el.getAttr('value');
74
+ },
75
+ /**
76
+ * @this {FakeDriver}
77
+ */
78
+ async clear(elementId) {
79
+ await this.setValue('', elementId);
80
+ },
81
+ /**
82
+ * This comment should be displayed instead of the one from ExternalDriver
83
+ * @param {string} elementId
84
+ * @this {FakeDriver}
85
+ */
86
+ async click(elementId) {
87
+ this.assertNoAlert();
88
+ let el = this.getElement(elementId);
89
+ if (!el.isVisible()) {
90
+ throw new driver_1.errors.InvalidElementStateError();
91
+ }
92
+ el.click();
93
+ this.focusedElId = elementId;
94
+ },
95
+ /**
96
+ * @this {FakeDriver}
97
+ */
98
+ async getAttribute(attr, elementId) {
99
+ let el = this.getElement(elementId);
100
+ return el.getAttr(attr);
101
+ },
102
+ /**
103
+ * @this {FakeDriver}
104
+ */
105
+ getElementRect(elementId) {
106
+ let el = this.getElement(elementId);
107
+ return el.getElementRect();
108
+ },
109
+ /**
110
+ * @this {FakeDriver}
111
+ */
112
+ getSize(elementId) {
113
+ let el = this.getElement(elementId);
114
+ return el.getSize();
115
+ },
116
+ /**
117
+ * @this {FakeDriver}
118
+ */
119
+ equalsElement(el1Id, el2Id) {
120
+ let el1 = this.getElement(el1Id);
121
+ let el2 = this.getElement(el2Id);
122
+ return el1.equals(el2);
123
+ },
124
+ /**
125
+ * @this {FakeDriver}
126
+ */
127
+ async getCssProperty(prop, elementId) {
128
+ this.assertWebviewContext();
129
+ let el = this.getElement(elementId);
130
+ return el.getCss(prop);
131
+ },
132
+ /**
133
+ * @param {string} elementId
134
+ * @this {FakeDriver}
135
+ */
136
+ async getLocation(elementId) {
137
+ const el = this.getElement(elementId);
138
+ return el.getLocation();
139
+ },
140
+ /**
141
+ * @this {FakeDriver}
142
+ */
143
+ async getLocationInView(elementId) {
144
+ return this.getLocation(elementId);
145
+ },
146
+ };
110
147
  /**
111
- * @template T,[U={}],[V=Array<any>]
112
- * @typedef {import('@appium/types').Class<T,U,V>} Class
148
+ * @typedef {import('../driver').FakeDriver} FakeDriver
113
149
  */
114
150
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":"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"}