@appium/fake-driver 4.2.2 → 5.1.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 (69) hide show
  1. package/build/lib/commands/alert.d.ts +330 -13
  2. package/build/lib/commands/alert.d.ts.map +1 -1
  3. package/build/lib/commands/alert.js +80 -53
  4. package/build/lib/commands/alert.js.map +1 -1
  5. package/build/lib/commands/contexts.d.ts +330 -14
  6. package/build/lib/commands/contexts.d.ts.map +1 -1
  7. package/build/lib/commands/contexts.js +101 -86
  8. package/build/lib/commands/contexts.js.map +1 -1
  9. package/build/lib/commands/element.d.ts +315 -22
  10. package/build/lib/commands/element.d.ts.map +1 -1
  11. package/build/lib/commands/element.js +112 -123
  12. package/build/lib/commands/element.js.map +1 -1
  13. package/build/lib/commands/find.d.ts +328 -18
  14. package/build/lib/commands/find.d.ts.map +1 -1
  15. package/build/lib/commands/find.js +118 -107
  16. package/build/lib/commands/find.js.map +1 -1
  17. package/build/lib/commands/general.d.ts +332 -28
  18. package/build/lib/commands/general.d.ts.map +1 -1
  19. package/build/lib/commands/general.js +101 -106
  20. package/build/lib/commands/general.js.map +1 -1
  21. package/build/lib/commands/index.d.ts +1523 -2
  22. package/build/lib/commands/index.d.ts.map +1 -1
  23. package/build/lib/commands/index.js +96 -18
  24. package/build/lib/commands/index.js.map +1 -1
  25. package/build/lib/driver.d.ts +145 -33
  26. package/build/lib/driver.d.ts.map +1 -1
  27. package/build/lib/driver.js +200 -145
  28. package/build/lib/driver.js.map +1 -1
  29. package/build/lib/fake-app.d.ts +15 -6
  30. package/build/lib/fake-app.d.ts.map +1 -1
  31. package/build/lib/fake-app.js +155 -194
  32. package/build/lib/fake-app.js.map +1 -1
  33. package/build/lib/fake-driver-schema.js +34 -26
  34. package/build/lib/fake-driver-schema.js.map +1 -1
  35. package/build/lib/fake-element.js +87 -121
  36. package/build/lib/fake-element.js.map +1 -1
  37. package/build/lib/index.d.ts +6 -5
  38. package/build/lib/index.d.ts.map +1 -1
  39. package/build/lib/index.js +19 -36
  40. package/build/lib/index.js.map +1 -1
  41. package/build/lib/logger.d.ts +1 -1
  42. package/build/lib/logger.d.ts.map +1 -1
  43. package/build/lib/logger.js +5 -15
  44. package/build/lib/logger.js.map +1 -1
  45. package/build/lib/scripts/fake-error.js +1 -5
  46. package/build/lib/scripts/fake-error.js.map +1 -1
  47. package/build/lib/scripts/fake-success.js +8 -11
  48. package/build/lib/scripts/fake-success.js.map +1 -1
  49. package/build/lib/server.d.ts +1 -1
  50. package/build/lib/server.d.ts.map +1 -1
  51. package/build/lib/server.js +18 -27
  52. package/build/lib/server.js.map +1 -1
  53. package/build/lib/types.d.ts +36 -0
  54. package/build/lib/types.d.ts.map +1 -0
  55. package/build/lib/types.js +3 -0
  56. package/build/lib/types.js.map +1 -0
  57. package/build/tsconfig.tsbuildinfo +1 -1
  58. package/lib/commands/alert.js +74 -34
  59. package/lib/commands/contexts.js +89 -52
  60. package/lib/commands/element.js +115 -98
  61. package/lib/commands/find.js +106 -77
  62. package/lib/commands/general.js +112 -75
  63. package/lib/commands/index.js +12 -17
  64. package/lib/driver.js +132 -39
  65. package/lib/fake-app.js +20 -6
  66. package/lib/index.js +9 -7
  67. package/lib/types.ts +42 -0
  68. package/package.json +13 -12
  69. package/tsconfig.json +20 -0
@@ -1,159 +1,214 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FakeDriver = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _bluebird = _interopRequireDefault(require("bluebird"));
11
-
12
- var _lodash = _interopRequireDefault(require("lodash"));
13
-
14
- var _driver = require("appium/driver");
15
-
16
- var _fakeApp = require("./fake-app");
17
-
18
- var _commands = _interopRequireDefault(require("./commands"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- class FakeDriver extends _driver.BaseDriver {
23
- constructor(opts = {}, shouldValidateCaps = true) {
24
- super(opts, shouldValidateCaps);
25
- this.appModel = null;
26
- this.curContext = 'NATIVE_APP';
27
- this.elMap = {};
28
- this.focusedElId = null;
29
- this.maxElId = 0;
30
- this.caps = {};
31
- this.fakeThing = null;
32
- this.cliArgs = {};
33
- this._proxyActive = false;
34
- this.desiredCapConstraints = {
35
- app: {
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FakeDriver = exports.FakeDriverCore = void 0;
7
+ const bluebird_1 = __importDefault(require("bluebird"));
8
+ const driver_1 = require("appium/driver");
9
+ const protocol_1 = require("@appium/base-driver/build/lib/protocol/protocol");
10
+ const fake_app_1 = require("./fake-app");
11
+ const commands_1 = require("./commands");
12
+ const FAKE_DRIVER_CONSTRAINTS = /** @type {const} */ ({
13
+ app: {
36
14
  presence: true,
37
- isString: true
38
- }
39
- };
40
- }
41
-
42
- proxyActive() {
43
- return this._proxyActive;
44
- }
45
-
46
- canProxy() {
47
- return true;
48
- }
49
-
50
- proxyReqRes(req, res) {
51
- res.set('content-type', 'application/json');
52
- const resBodyObj = {
53
- value: 'proxied via proxyReqRes'
54
- };
55
- const match = req.originalUrl.match(/\/session\/([^/]+)/);
56
- resBodyObj.sessionId = match ? match[1] : null;
57
- res.status(200).send(JSON.stringify(resBodyObj));
58
- }
59
-
60
- proxyCommand() {
61
- return 'proxied via proxyCommand';
62
- }
63
-
64
- async createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities, otherSessionData = []) {
65
- for (let d of otherSessionData) {
66
- if (d.isUnique) {
67
- throw new _driver.errors.SessionNotCreatedError('Cannot start session; another ' + 'unique session is in progress that requires all resources');
68
- }
15
+ isString: true,
16
+ },
17
+ uniqueApp: {
18
+ isBoolean: true,
19
+ },
20
+ });
21
+ /**
22
+ * @typedef {typeof FAKE_DRIVER_CONSTRAINTS} FakeDriverConstraints
23
+ */
24
+ /**
25
+ * @extends {BaseDriver<FakeDriverConstraints>}
26
+ * @implements {ExternalDriver<FakeDriverConstraints>}
27
+ */
28
+ class FakeDriverCore extends driver_1.BaseDriver {
29
+ constructor(opts = {}, shouldValidateCaps = true) {
30
+ super(opts, shouldValidateCaps);
31
+ this.desiredCapConstraints = FAKE_DRIVER_CONSTRAINTS;
32
+ this.appModel = new fake_app_1.FakeApp();
33
+ this.curContext = 'NATIVE_APP';
34
+ this.elMap = {};
35
+ this.focusedElId = null;
36
+ this.maxElId = 0;
37
+ this.fakeThing = null;
38
+ this._proxyActive = false;
39
+ this.shook = false;
69
40
  }
70
-
71
- let [sessionId, caps] = await super.createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities, otherSessionData);
72
- this.appModel = new _fakeApp.FakeApp();
73
-
74
- if (_lodash.default.isArray(caps) === true && caps.length === 1) {
75
- caps = caps[0];
41
+ proxyActive() {
42
+ return this._proxyActive;
76
43
  }
77
-
78
- this.caps = caps;
79
- await this.appModel.loadApp(caps.app);
80
- return [sessionId, caps];
81
- }
82
-
83
- get driverData() {
84
- return {
85
- isUnique: !!this.caps.uniqueApp
86
- };
87
- }
88
-
89
- async getFakeThing() {
90
- await _bluebird.default.delay(1);
91
- return this.fakeThing;
92
- }
93
-
94
- async setFakeThing(thing) {
95
- await _bluebird.default.delay(1);
96
- this.fakeThing = thing;
97
- return null;
98
- }
99
-
100
- async getFakeDriverArgs() {
101
- await _bluebird.default.delay(1);
102
- return this.cliArgs;
103
- }
104
-
105
- static newMethodMap = {
106
- '/session/:sessionId/fakedriver': {
107
- GET: {
108
- command: 'getFakeThing'
109
- },
110
- POST: {
111
- command: 'setFakeThing',
112
- payloadParams: {
113
- required: ['thing']
44
+ canProxy() {
45
+ return true;
46
+ }
47
+ proxyReqRes(req, res) {
48
+ // fake implementation of jwp proxy req res
49
+ res.set('content-type', 'application/json');
50
+ const resBodyObj = { value: 'proxied via proxyReqRes' };
51
+ const match = req.originalUrl.match(/\/session\/([^/]+)/);
52
+ resBodyObj.sessionId = match ? match[1] : null;
53
+ res.status(200).send(JSON.stringify(resBodyObj));
54
+ }
55
+ /**
56
+ * @template [T=any]
57
+ * @returns {Promise<T>}
58
+ */
59
+ async proxyCommand( /*url, method, body*/) {
60
+ return /** @type {T} */ ( /** @type {unknown} */('proxied via proxyCommand'));
61
+ }
62
+ /**
63
+ * Comment for `createSession` in `FakeDriver`
64
+ * @param {W3CFakeDriverCaps} w3cCapabilities1 W3C Capabilities
65
+ * @param {W3CFakeDriverCaps} [w3cCapabilities2] W3C Capabilities
66
+ * @param {W3CFakeDriverCaps} [w3cCapabilities3] W3C Capabilities
67
+ * @param {import('@appium/types').DriverData[]} [driverData] Other session data
68
+ * @override
69
+ * @returns {Promise<[string,FakeDriverCaps]>} Session ID and normalized capabilities
70
+ */
71
+ async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities3, driverData = []) {
72
+ // TODO add validation on caps.app that we will get for free from
73
+ // BaseDriver
74
+ // check to see if any other sessions have set uniqueApp. If so, emulate
75
+ // not being able to start a session because of system resources
76
+ for (let d of driverData) {
77
+ if (d.isUnique) {
78
+ throw new driver_1.errors.SessionNotCreatedError('Cannot start session; another ' +
79
+ 'unique session is in progress that requires all resources');
80
+ }
114
81
  }
115
- }
82
+ let [sessionId, caps] = /** @type {[string, FakeDriverCaps]} */ (await super.createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities3, driverData));
83
+ this.caps = caps;
84
+ await this.appModel.loadApp(caps.app);
85
+ return [sessionId, caps];
86
+ }
87
+ get driverData() {
88
+ return {
89
+ isUnique: !!this.caps.uniqueApp,
90
+ };
91
+ }
92
+ async getFakeThing() {
93
+ await bluebird_1.default.delay(1);
94
+ return this.fakeThing;
95
+ }
96
+ /**
97
+ * Set the 'thing' value (so that it can be retrieved later)
98
+ *
99
+ * @param {any} thing
100
+ * @returns {Promise<null>}
101
+ */
102
+ async setFakeThing(thing) {
103
+ await bluebird_1.default.delay(1);
104
+ this.fakeThing = thing;
105
+ return null;
106
+ }
107
+ /**
108
+ * Get the driver args that were sent in via the CLI
109
+ *
110
+ * @returns {Promise<typeof this.cliArgs>}
111
+ */
112
+ async getFakeDriverArgs() {
113
+ await bluebird_1.default.delay(1);
114
+ return this.cliArgs;
115
+ }
116
+ /**
117
+ * This is a command that will return a list of deprecated command names called
118
+ *
119
+ * @returns {Promise<string[]>}
120
+ */
121
+ async getDeprecatedCommandsCalled() {
122
+ await bluebird_1.default.delay(1);
123
+ return Array.from(protocol_1.deprecatedCommandsLogged);
124
+ }
125
+ /**
126
+ * This is a command that exists just to be an example of a deprecated command
127
+ *
128
+ * @returns {Promise<void>}
129
+ */
130
+ async callDeprecatedCommand() {
131
+ await bluebird_1.default.delay(1);
132
+ }
133
+ /**
134
+ * Add two or maybe even three numbers
135
+ *
136
+ * @param {number} num1
137
+ * @param {number} num2
138
+ * @param {number} [num3]
139
+ * @returns {Promise<number>}
140
+ */
141
+ // eslint-disable-next-line no-unused-vars
142
+ async fakeAddition(num1, num2, num3 = 0) {
143
+ throw new driver_1.errors.NotImplementedError();
144
+ }
145
+ static fakeRoute(req, res) {
146
+ res.send(JSON.stringify({ fakedriver: 'fakeResponse' }));
147
+ }
148
+ static async updateServer(expressApp, httpServer, cliArgs) {
149
+ // eslint-disable-line require-await
150
+ expressApp.all('/fakedriver', FakeDriverCore.fakeRoute);
151
+ expressApp.all('/fakedriverCliArgs', (req, res) => {
152
+ res.send(JSON.stringify(cliArgs));
153
+ });
154
+ }
155
+ }
156
+ exports.FakeDriverCore = FakeDriverCore;
157
+ FakeDriverCore.newMethodMap = ({
158
+ '/session/:sessionId/fakedriver': {
159
+ GET: { command: 'getFakeThing' },
160
+ /**
161
+ * Sets a fake thing
162
+ */
163
+ POST: { command: 'setFakeThing', payloadParams: { required: ['thing'] } },
116
164
  },
117
165
  '/session/:sessionId/fakedriverargs': {
118
- GET: {
119
- command: 'getFakeDriverArgs'
120
- }
121
- }
122
- };
123
- static executeMethodMap = {
166
+ GET: { command: 'getFakeDriverArgs' },
167
+ },
168
+ '/session/:sessionId/deprecated': {
169
+ POST: { command: 'callDeprecatedCommand', deprecated: true },
170
+ },
171
+ // this next one exists to override a deprecated method
172
+ '/session/:sessionId/doubleclick': {
173
+ POST: { command: 'doubleClick' },
174
+ },
175
+ });
176
+ FakeDriverCore.executeMethodMap = ({
124
177
  'fake: addition': {
125
- command: 'fakeAddition',
126
- params: {
127
- required: ['num1', 'num2'],
128
- optional: ['num3']
129
- }
178
+ command: 'fakeAddition',
179
+ params: { required: ['num1', 'num2'], optional: ['num3'] },
130
180
  },
181
+ /**
182
+ * Gets a thing (a fake thing)
183
+ */
131
184
  'fake: getThing': {
132
- command: 'getFakeThing'
185
+ command: 'getFakeThing',
133
186
  },
134
187
  'fake: setThing': {
135
- command: 'setFakeThing',
136
- params: {
137
- required: ['thing']
138
- }
139
- }
140
- };
141
-
142
- static fakeRoute(req, res) {
143
- res.send(JSON.stringify({
144
- fakedriver: 'fakeResponse'
145
- }));
146
- }
147
-
148
- static async updateServer(expressApp, httpServer, cliArgs) {
149
- expressApp.all('/fakedriver', FakeDriver.fakeRoute);
150
- expressApp.all('/fakedriverCliArgs', (req, res) => {
151
- res.send(JSON.stringify(cliArgs));
152
- });
153
- }
154
-
188
+ command: 'setFakeThing',
189
+ params: { required: ['thing'] },
190
+ },
191
+ 'fake: getDeprecatedCommandsCalled': {
192
+ command: 'getDeprecatedCommandsCalled',
193
+ },
194
+ });
195
+ /**
196
+ * @extends FakeDriverCore
197
+ */
198
+ class FakeDriver extends (0, commands_1.FakeDriverMixin)(FakeDriverCore) {
155
199
  }
156
-
157
200
  exports.FakeDriver = FakeDriver;
158
- Object.assign(FakeDriver.prototype, _commands.default);
159
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGYWtlRHJpdmVyIiwiQmFzZURyaXZlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsInNob3VsZFZhbGlkYXRlQ2FwcyIsImFwcE1vZGVsIiwiY3VyQ29udGV4dCIsImVsTWFwIiwiZm9jdXNlZEVsSWQiLCJtYXhFbElkIiwiY2FwcyIsImZha2VUaGluZyIsImNsaUFyZ3MiLCJfcHJveHlBY3RpdmUiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJhcHAiLCJwcmVzZW5jZSIsImlzU3RyaW5nIiwicHJveHlBY3RpdmUiLCJjYW5Qcm94eSIsInByb3h5UmVxUmVzIiwicmVxIiwicmVzIiwic2V0IiwicmVzQm9keU9iaiIsInZhbHVlIiwibWF0Y2giLCJvcmlnaW5hbFVybCIsInNlc3Npb25JZCIsInN0YXR1cyIsInNlbmQiLCJKU09OIiwic3RyaW5naWZ5IiwicHJveHlDb21tYW5kIiwiY3JlYXRlU2Vzc2lvbiIsImpzb253cERlc2lyZWRDYXBhYmlsaXRpZXMiLCJqc29ud3BSZXF1aXJlZENhcHMiLCJ3M2NDYXBhYmlsaXRpZXMiLCJvdGhlclNlc3Npb25EYXRhIiwiZCIsImlzVW5pcXVlIiwiZXJyb3JzIiwiU2Vzc2lvbk5vdENyZWF0ZWRFcnJvciIsIkZha2VBcHAiLCJfIiwiaXNBcnJheSIsImxlbmd0aCIsImxvYWRBcHAiLCJkcml2ZXJEYXRhIiwidW5pcXVlQXBwIiwiZ2V0RmFrZVRoaW5nIiwiQiIsImRlbGF5Iiwic2V0RmFrZVRoaW5nIiwidGhpbmciLCJnZXRGYWtlRHJpdmVyQXJncyIsIm5ld01ldGhvZE1hcCIsIkdFVCIsImNvbW1hbmQiLCJQT1NUIiwicGF5bG9hZFBhcmFtcyIsInJlcXVpcmVkIiwiZXhlY3V0ZU1ldGhvZE1hcCIsInBhcmFtcyIsIm9wdGlvbmFsIiwiZmFrZVJvdXRlIiwiZmFrZWRyaXZlciIsInVwZGF0ZVNlcnZlciIsImV4cHJlc3NBcHAiLCJodHRwU2VydmVyIiwiYWxsIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiY29tbWFuZHMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvZHJpdmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0Jhc2VEcml2ZXIsIGVycm9yc30gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5pbXBvcnQge0Zha2VBcHB9IGZyb20gJy4vZmFrZS1hcHAnO1xuaW1wb3J0IGNvbW1hbmRzIGZyb20gJy4vY29tbWFuZHMnO1xuXG5jbGFzcyBGYWtlRHJpdmVyIGV4dGVuZHMgQmFzZURyaXZlciB7XG4gIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSwgc2hvdWxkVmFsaWRhdGVDYXBzID0gdHJ1ZSkge1xuICAgIHN1cGVyKG9wdHMsIHNob3VsZFZhbGlkYXRlQ2Fwcyk7XG4gICAgdGhpcy5hcHBNb2RlbCA9IG51bGw7XG4gICAgdGhpcy5jdXJDb250ZXh0ID0gJ05BVElWRV9BUFAnO1xuICAgIHRoaXMuZWxNYXAgPSB7fTtcbiAgICB0aGlzLmZvY3VzZWRFbElkID0gbnVsbDtcbiAgICB0aGlzLm1heEVsSWQgPSAwO1xuICAgIHRoaXMuY2FwcyA9IHt9O1xuICAgIHRoaXMuZmFrZVRoaW5nID0gbnVsbDtcbiAgICB0aGlzLmNsaUFyZ3MgPSB7fTtcbiAgICB0aGlzLl9wcm94eUFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMgPSB7XG4gICAgICBhcHA6IHtcbiAgICAgICAgcHJlc2VuY2U6IHRydWUsXG4gICAgICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJveHlBY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb3h5QWN0aXZlO1xuICB9XG5cbiAgY2FuUHJveHkoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcm94eVJlcVJlcyhyZXEsIHJlcykge1xuICAgIC8vIGZha2UgaW1wbGVtZW50YXRpb24gb2YgandwIHByb3h5IHJlcSByZXNcbiAgICByZXMuc2V0KCdjb250ZW50LXR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGNvbnN0IHJlc0JvZHlPYmogPSB7dmFsdWU6ICdwcm94aWVkIHZpYSBwcm94eVJlcVJlcyd9O1xuICAgIGNvbnN0IG1hdGNoID0gcmVxLm9yaWdpbmFsVXJsLm1hdGNoKC9cXC9zZXNzaW9uXFwvKFteL10rKS8pO1xuICAgIHJlc0JvZHlPYmouc2Vzc2lvbklkID0gbWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7XG4gICAgcmVzLnN0YXR1cygyMDApLnNlbmQoSlNPTi5zdHJpbmdpZnkocmVzQm9keU9iaikpO1xuICB9XG5cbiAgcHJveHlDb21tYW5kKC8qdXJsLCBtZXRob2QsIGJvZHkqLykge1xuICAgIHJldHVybiAncHJveGllZCB2aWEgcHJveHlDb21tYW5kJztcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24oXG4gICAganNvbndwRGVzaXJlZENhcGFiaWxpdGllcyxcbiAgICBqc29ud3BSZXF1aXJlZENhcHMsXG4gICAgdzNjQ2FwYWJpbGl0aWVzLFxuICAgIG90aGVyU2Vzc2lvbkRhdGEgPSBbXVxuICApIHtcbiAgICAvLyBUT0RPIGFkZCB2YWxpZGF0aW9uIG9uIGNhcHMuYXBwIHRoYXQgd2Ugd2lsbCBnZXQgZm9yIGZyZWUgZnJvbVxuICAgIC8vIEJhc2VEcml2ZXJcblxuICAgIC8vIGNoZWNrIHRvIHNlZSBpZiBhbnkgb3RoZXIgc2Vzc2lvbnMgaGF2ZSBzZXQgdW5pcXVlQXBwLiBJZiBzbywgZW11bGF0ZVxuICAgIC8vIG5vdCBiZWluZyBhYmxlIHRvIHN0YXJ0IGEgc2Vzc2lvbiBiZWNhdXNlIG9mIHN5c3RlbSByZXNvdXJjZXNcbiAgICBmb3IgKGxldCBkIG9mIG90aGVyU2Vzc2lvbkRhdGEpIHtcbiAgICAgIGlmIChkLmlzVW5pcXVlKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihcbiAgICAgICAgICAnQ2Fubm90IHN0YXJ0IHNlc3Npb247IGFub3RoZXIgJyArXG4gICAgICAgICAgICAndW5pcXVlIHNlc3Npb24gaXMgaW4gcHJvZ3Jlc3MgdGhhdCByZXF1aXJlcyBhbGwgcmVzb3VyY2VzJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBbc2Vzc2lvbklkLCBjYXBzXSA9IGF3YWl0IHN1cGVyLmNyZWF0ZVNlc3Npb24oXG4gICAgICBqc29ud3BEZXNpcmVkQ2FwYWJpbGl0aWVzLFxuICAgICAganNvbndwUmVxdWlyZWRDYXBzLFxuICAgICAgdzNjQ2FwYWJpbGl0aWVzLFxuICAgICAgb3RoZXJTZXNzaW9uRGF0YVxuICAgICk7XG4gICAgdGhpcy5hcHBNb2RlbCA9IG5ldyBGYWtlQXBwKCk7XG4gICAgaWYgKF8uaXNBcnJheShjYXBzKSA9PT0gdHJ1ZSAmJiBjYXBzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY2FwcyA9IGNhcHNbMF07XG4gICAgfVxuICAgIHRoaXMuY2FwcyA9IGNhcHM7XG4gICAgYXdhaXQgdGhpcy5hcHBNb2RlbC5sb2FkQXBwKGNhcHMuYXBwKTtcbiAgICByZXR1cm4gW3Nlc3Npb25JZCwgY2Fwc107XG4gIH1cblxuICBnZXQgZHJpdmVyRGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNVbmlxdWU6ICEhdGhpcy5jYXBzLnVuaXF1ZUFwcCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ2V0RmFrZVRoaW5nKCkge1xuICAgIGF3YWl0IEIuZGVsYXkoMSk7XG4gICAgcmV0dXJuIHRoaXMuZmFrZVRoaW5nO1xuICB9XG5cbiAgYXN5bmMgc2V0RmFrZVRoaW5nKHRoaW5nKSB7XG4gICAgYXdhaXQgQi5kZWxheSgxKTtcbiAgICB0aGlzLmZha2VUaGluZyA9IHRoaW5nO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmFrZURyaXZlckFyZ3MoKSB7XG4gICAgYXdhaXQgQi5kZWxheSgxKTtcbiAgICByZXR1cm4gdGhpcy5jbGlBcmdzO1xuICB9XG5cbiAgc3RhdGljIG5ld01ldGhvZE1hcCA9IHtcbiAgICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mYWtlZHJpdmVyJzoge1xuICAgICAgR0VUOiB7Y29tbWFuZDogJ2dldEZha2VUaGluZyd9LFxuICAgICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRGYWtlVGhpbmcnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndGhpbmcnXX19LFxuICAgIH0sXG4gICAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZmFrZWRyaXZlcmFyZ3MnOiB7XG4gICAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RmFrZURyaXZlckFyZ3MnfSxcbiAgICB9LFxuICB9O1xuXG4gIHN0YXRpYyBleGVjdXRlTWV0aG9kTWFwID0ge1xuICAgICdmYWtlOiBhZGRpdGlvbic6IHtcbiAgICAgIGNvbW1hbmQ6ICdmYWtlQWRkaXRpb24nLFxuICAgICAgcGFyYW1zOiB7cmVxdWlyZWQ6IFsnbnVtMScsICdudW0yJ10sIG9wdGlvbmFsOiBbJ251bTMnXX0sXG4gICAgfSxcbiAgICAnZmFrZTogZ2V0VGhpbmcnOiB7XG4gICAgICBjb21tYW5kOiAnZ2V0RmFrZVRoaW5nJyxcbiAgICB9LFxuICAgICdmYWtlOiBzZXRUaGluZyc6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRGYWtlVGhpbmcnLFxuICAgICAgcGFyYW1zOiB7cmVxdWlyZWQ6IFsndGhpbmcnXX0sXG4gICAgfSxcbiAgfTtcblxuICBzdGF0aWMgZmFrZVJvdXRlKHJlcSwgcmVzKSB7XG4gICAgcmVzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe2Zha2Vkcml2ZXI6ICdmYWtlUmVzcG9uc2UnfSkpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHVwZGF0ZVNlcnZlcihleHByZXNzQXBwLCBodHRwU2VydmVyLCBjbGlBcmdzKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgZXhwcmVzc0FwcC5hbGwoJy9mYWtlZHJpdmVyJywgRmFrZURyaXZlci5mYWtlUm91dGUpO1xuICAgIGV4cHJlc3NBcHAuYWxsKCcvZmFrZWRyaXZlckNsaUFyZ3MnLCAocmVxLCByZXMpID0+IHtcbiAgICAgIHJlcy5zZW5kKEpTT04uc3RyaW5naWZ5KGNsaUFyZ3MpKTtcbiAgICB9KTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKEZha2VEcml2ZXIucHJvdG90eXBlLCBjb21tYW5kcyk7XG5cbmV4cG9ydCB7RmFrZURyaXZlcn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsVUFBTixTQUF5QkMsa0JBQXpCLENBQW9DO0VBQ2xDQyxXQUFXLENBQUNDLElBQUksR0FBRyxFQUFSLEVBQVlDLGtCQUFrQixHQUFHLElBQWpDLEVBQXVDO0lBQ2hELE1BQU1ELElBQU4sRUFBWUMsa0JBQVo7SUFDQSxLQUFLQyxRQUFMLEdBQWdCLElBQWhCO0lBQ0EsS0FBS0MsVUFBTCxHQUFrQixZQUFsQjtJQUNBLEtBQUtDLEtBQUwsR0FBYSxFQUFiO0lBQ0EsS0FBS0MsV0FBTCxHQUFtQixJQUFuQjtJQUNBLEtBQUtDLE9BQUwsR0FBZSxDQUFmO0lBQ0EsS0FBS0MsSUFBTCxHQUFZLEVBQVo7SUFDQSxLQUFLQyxTQUFMLEdBQWlCLElBQWpCO0lBQ0EsS0FBS0MsT0FBTCxHQUFlLEVBQWY7SUFDQSxLQUFLQyxZQUFMLEdBQW9CLEtBQXBCO0lBRUEsS0FBS0MscUJBQUwsR0FBNkI7TUFDM0JDLEdBQUcsRUFBRTtRQUNIQyxRQUFRLEVBQUUsSUFEUDtRQUVIQyxRQUFRLEVBQUU7TUFGUDtJQURzQixDQUE3QjtFQU1EOztFQUVEQyxXQUFXLEdBQUc7SUFDWixPQUFPLEtBQUtMLFlBQVo7RUFDRDs7RUFFRE0sUUFBUSxHQUFHO0lBQ1QsT0FBTyxJQUFQO0VBQ0Q7O0VBRURDLFdBQVcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVc7SUFFcEJBLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLGNBQVIsRUFBd0Isa0JBQXhCO0lBQ0EsTUFB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
201
+ exports.default = FakeDriver;
202
+ /**
203
+ * @typedef {import('./types').FakeDriverCaps} FakeDriverCaps
204
+ * @typedef {import('./types').W3CFakeDriverCaps} W3CFakeDriverCaps
205
+ */
206
+ /**
207
+ * @template {import('@appium/types').Driver} D
208
+ * @typedef {import('@appium/types').DriverClass<D>} DriverClass
209
+ */
210
+ /**
211
+ * @template {import('@appium/types').Constraints} C
212
+ * @typedef {import('@appium/types').ExternalDriver<C>} ExternalDriver
213
+ */
214
+ //# sourceMappingURL=driver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","names":["FakeDriver","BaseDriver","constructor","opts","shouldValidateCaps","appModel","curContext","elMap","focusedElId","maxElId","caps","fakeThing","cliArgs","_proxyActive","desiredCapConstraints","app","presence","isString","proxyActive","canProxy","proxyReqRes","req","res","set","resBodyObj","value","match","originalUrl","sessionId","status","send","JSON","stringify","proxyCommand","createSession","jsonwpDesiredCapabilities","jsonwpRequiredCaps","w3cCapabilities","otherSessionData","d","isUnique","errors","SessionNotCreatedError","FakeApp","_","isArray","length","loadApp","driverData","uniqueApp","getFakeThing","B","delay","setFakeThing","thing","getFakeDriverArgs","newMethodMap","GET","command","POST","payloadParams","required","executeMethodMap","params","optional","fakeRoute","fakedriver","updateServer","expressApp","httpServer","all","Object","assign","prototype","commands"],"sources":["../../lib/driver.js"],"sourcesContent":["import B from 'bluebird';\nimport _ from 'lodash';\nimport {BaseDriver, errors} from 'appium/driver';\nimport {FakeApp} from './fake-app';\nimport commands from './commands';\n\nclass FakeDriver extends BaseDriver {\n constructor(opts = {}, shouldValidateCaps = true) {\n super(opts, shouldValidateCaps);\n this.appModel = null;\n this.curContext = 'NATIVE_APP';\n this.elMap = {};\n this.focusedElId = null;\n this.maxElId = 0;\n this.caps = {};\n this.fakeThing = null;\n this.cliArgs = {};\n this._proxyActive = false;\n\n this.desiredCapConstraints = {\n app: {\n presence: true,\n isString: true,\n },\n };\n }\n\n proxyActive() {\n return this._proxyActive;\n }\n\n canProxy() {\n return true;\n }\n\n proxyReqRes(req, res) {\n // fake implementation of jwp proxy req res\n res.set('content-type', 'application/json');\n const resBodyObj = {value: 'proxied via proxyReqRes'};\n const match = req.originalUrl.match(/\\/session\\/([^/]+)/);\n resBodyObj.sessionId = match ? match[1] : null;\n res.status(200).send(JSON.stringify(resBodyObj));\n }\n\n proxyCommand(/*url, method, body*/) {\n return 'proxied via proxyCommand';\n }\n\n async createSession(\n jsonwpDesiredCapabilities,\n jsonwpRequiredCaps,\n w3cCapabilities,\n otherSessionData = []\n ) {\n // TODO add validation on caps.app that we will get for free from\n // BaseDriver\n\n // check to see if any other sessions have set uniqueApp. If so, emulate\n // not being able to start a session because of system resources\n for (let d of otherSessionData) {\n if (d.isUnique) {\n throw new errors.SessionNotCreatedError(\n 'Cannot start session; another ' +\n 'unique session is in progress that requires all resources'\n );\n }\n }\n\n let [sessionId, caps] = await super.createSession(\n jsonwpDesiredCapabilities,\n jsonwpRequiredCaps,\n w3cCapabilities,\n otherSessionData\n );\n this.appModel = new FakeApp();\n if (_.isArray(caps) === true && caps.length === 1) {\n caps = caps[0];\n }\n this.caps = caps;\n await this.appModel.loadApp(caps.app);\n return [sessionId, caps];\n }\n\n get driverData() {\n return {\n isUnique: !!this.caps.uniqueApp,\n };\n }\n\n async getFakeThing() {\n await B.delay(1);\n return this.fakeThing;\n }\n\n async setFakeThing(thing) {\n await B.delay(1);\n this.fakeThing = thing;\n return null;\n }\n\n async getFakeDriverArgs() {\n await B.delay(1);\n return this.cliArgs;\n }\n\n static newMethodMap = {\n '/session/:sessionId/fakedriver': {\n GET: {command: 'getFakeThing'},\n POST: {command: 'setFakeThing', payloadParams: {required: ['thing']}},\n },\n '/session/:sessionId/fakedriverargs': {\n GET: {command: 'getFakeDriverArgs'},\n },\n };\n\n static executeMethodMap = {\n 'fake: addition': {\n command: 'fakeAddition',\n params: {required: ['num1', 'num2'], optional: ['num3']},\n },\n 'fake: getThing': {\n command: 'getFakeThing',\n },\n 'fake: setThing': {\n command: 'setFakeThing',\n params: {required: ['thing']},\n },\n };\n\n static fakeRoute(req, res) {\n res.send(JSON.stringify({fakedriver: 'fakeResponse'}));\n }\n\n static async updateServer(expressApp, httpServer, cliArgs) {\n // eslint-disable-line require-await\n expressApp.all('/fakedriver', FakeDriver.fakeRoute);\n expressApp.all('/fakedriverCliArgs', (req, res) => {\n res.send(JSON.stringify(cliArgs));\n });\n }\n}\n\nObject.assign(FakeDriver.prototype, commands);\n\nexport {FakeDriver};\n"],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;;AAAA,wDAAyB;AACzB,0CAAiD;AACjD,8EAAyF;AACzF,yCAAmC;AACnC,yCAA2C;AAE3C,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,CAAC;IACpD,GAAG,EAAE;QACH,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,SAAS,EAAE,IAAI;KAChB;CACF,CAAC,CAAC;AAEH;;GAEG;AAEH;;;GAGG;AACH,MAAa,cAAe,SAAQ,mBAAU;IAQ5C,YAAY,IAAI,GAAG,EAAE,EAAE,kBAAkB,GAAG,IAAI;QAC9C,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QARlC,0BAAqB,GAAG,uBAAuB,CAAC;QAKhD,aAAQ,GAAG,IAAI,kBAAO,EAAE,CAAC;QAIvB,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,GAAG,EAAE,GAAG;QAClB,2CAA2C;QAC3C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,EAAC,KAAK,EAAE,yBAAyB,EAAC,CAAC;QACtD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC1D,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,EAAC,qBAAqB;QACtC,OAAO,gBAAgB,CAAC,EAAC,sBAAuB,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,GAAG,EAAE;QACvF,iEAAiE;QACjE,aAAa;QAEb,wEAAwE;QACxE,gEAAgE;QAChE,KAAK,IAAI,CAAC,IAAI,UAAU,EAAE;YACxB,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACd,MAAM,IAAI,eAAM,CAAC,sBAAsB,CACrC,gCAAgC;oBAC9B,2DAA2D,CAC9D,CAAC;aACH;SACF;QAED,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,uCAAuC,CAAC,CAC9D,MAAM,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAC5F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO;YACL,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,kBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,KAAK;QACtB,MAAM,kBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,kBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,2BAA2B;QAC/B,MAAM,kBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,mCAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,kBAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IA0CD;;;;;;;OAOG;IACH,0CAA0C;IAC1C,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;QACrC,MAAM,IAAI,eAAM,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG;QACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO;QACvD,oCAAoC;QACpC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;;AA/LH,wCAgMC;AAhEQ,2BAAY,GAAwB,CAAC;IAC1C,gCAAgC,EAAE;QAChC,GAAG,EAAE,EAAC,OAAO,EAAE,cAAc,EAAC;QAC9B;;WAEG;QACH,IAAI,EAAE,EAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,EAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAC,EAAC;KACtE;IACD,oCAAoC,EAAE;QACpC,GAAG,EAAE,EAAC,OAAO,EAAE,mBAAmB,EAAC;KACpC;IACD,gCAAgC,EAAE;QAChC,IAAI,EAAE,EAAC,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAC;KAC3D;IACD,uDAAuD;IACvD,iCAAiC,EAAE;QACjC,IAAI,EAAE,EAAC,OAAO,EAAE,aAAa,EAAC;KAC/B;CACF,CAAC,CAAC;AAEI,+BAAgB,GAAwB,CAAC;IAC9C,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAC;KACzD;IACD;;OAEG;IACH,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;KACxB;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAC;KAC9B;IACD,mCAAmC,EAAE;QACnC,OAAO,EAAE,6BAA6B;KACvC;CACF,CAAC,CAAC;AA4BL;;GAEG;AACH,MAAa,UAAW,SAAQ,IAAA,0BAAe,EAAC,cAAc,CAAC;CAAG;AAAlE,gCAAkE;AAClE,kBAAe,UAAU,CAAC;AAE1B;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG"}
@@ -1,3 +1,6 @@
1
+ export type ElementWithData = Element & {
2
+ data: any;
3
+ };
1
4
  export class FakeApp {
2
5
  dom: Document | null;
3
6
  activeDom: Document | null;
@@ -12,14 +15,20 @@ export class FakeApp {
12
15
  currentOrientation: string;
13
16
  actionLog: any[];
14
17
  get title(): any;
15
- get currentGeoLocation(): {
16
- latitude: number;
17
- longitude: number;
18
- };
18
+ /**
19
+ * @type {import('@appium/types').Location}
20
+ */
21
+ get currentGeoLocation(): import("@appium/types").Location;
19
22
  set orientation(arg: string);
20
23
  get orientation(): string;
21
- get width(): number | null;
22
- get height(): number | null;
24
+ /**
25
+ * @type {number}
26
+ */
27
+ get width(): number;
28
+ /**
29
+ * @type {number}
30
+ */
31
+ get height(): number;
23
32
  setDims(): void;
24
33
  loadApp(appPath: any): Promise<void>;
25
34
  getWebviews(): FakeWebView[];
@@ -1 +1 @@
1
- {"version":3,"file":"fake-app.d.ts","sourceRoot":"","sources":["../../lib/fake-app.js"],"names":[],"mappings":"AAUA;IAEI,qBAAe;IACf,2BAAqB;IACrB,mBAAyB;IACzB,iBAAuB;IACvB,gCAAuB;IACvB,YAAY;IACZ,aAAa;IACb,sBAAkB;IAClB,uBAAmB;IACnB,eAAgB;IAChB,2BAAoC;IACpC,iBAAmB;IAGrB,iBAMC;IAED;;;MAKC;IAMD,6BAEC;IAND,0BAEC;IAMD,2BAKC;IAED,4BAKC;IAED,gBAKC;IAED,qCAUC;IAED,6BAEC;IAED,+BAIC;IAED,0BAGC;IAED,gCAIC;IAED,wBAGC;IAED,sDAEC;IAED,kDAEC;IAED,4DAEC;IAED,oDAQC;IAED,oBAEC;IAED,8BAKC;IAED,8BAMC;IAED,iBAEC;IAED,oBAEC;IAED,wBAEC;CACF;;AAED;IACE,uBAEC;IADC,UAAgB;CAEnB"}
1
+ {"version":3,"file":"fake-app.d.ts","sourceRoot":"","sources":["../../lib/fake-app.js"],"names":[],"mappings":"8BAqLa,OAAO,GAAG;IAAC,IAAI,EAAE,GAAG,CAAA;CAAC;AA3KlC;IAEI,qBAAe;IACf,2BAAqB;IACrB,mBAAyB;IACzB,iBAAuB;IACvB,gCAAuB;IACvB,YAAY;IACZ,aAAa;IACb,sBAAkB;IAClB,uBAAmB;IACnB,eAAgB;IAChB,2BAAoC;IACpC,iBAAmB;IAGrB,iBAOC;IAED;;OAEG;IACH,2DAKC;IAMD,6BAEC;IAND,0BAEC;IAMD;;OAEG;IACH,oBAKC;IAED;;OAEG;IACH,qBAKC;IAED,gBAKC;IAED,qCAUC;IAED,6BAEC;IAED,+BAIC;IAED,0BAGC;IAED,gCAIC;IAED,wBAGC;IAED,sDAEC;IAED,kDAEC;IAED,4DAEC;IAED,oDAQC;IAED,oBAEC;IAED,8BAKC;IAED,8BAMC;IAED,iBAEC;IAED,oBAEC;IAED,wBAEC;CACF;;AAED;IACE,uBAEC;IADC,UAAgB;CAEnB"}