@appium/fake-driver 4.2.2 → 5.0.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 (68) hide show
  1. package/build/lib/commands/alert.d.ts +345 -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 +359 -14
  6. package/build/lib/commands/contexts.d.ts.map +1 -1
  7. package/build/lib/commands/contexts.js +102 -86
  8. package/build/lib/commands/contexts.js.map +1 -1
  9. package/build/lib/commands/element.d.ts +326 -22
  10. package/build/lib/commands/element.d.ts.map +1 -1
  11. package/build/lib/commands/element.js +108 -123
  12. package/build/lib/commands/element.js.map +1 -1
  13. package/build/lib/commands/find.d.ts +338 -18
  14. package/build/lib/commands/find.d.ts.map +1 -1
  15. package/build/lib/commands/find.js +113 -107
  16. package/build/lib/commands/find.js.map +1 -1
  17. package/build/lib/commands/general.d.ts +364 -28
  18. package/build/lib/commands/general.d.ts.map +1 -1
  19. package/build/lib/commands/general.js +97 -106
  20. package/build/lib/commands/general.js.map +1 -1
  21. package/build/lib/commands/index.d.ts +1598 -2
  22. package/build/lib/commands/index.d.ts.map +1 -1
  23. package/build/lib/commands/index.js +97 -18
  24. package/build/lib/commands/index.js.map +1 -1
  25. package/build/lib/driver.d.ts +117 -33
  26. package/build/lib/driver.d.ts.map +1 -1
  27. package/build/lib/driver.js +170 -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 +4 -5
  38. package/build/lib/index.d.ts.map +1 -1
  39. package/build/lib/index.js +15 -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 +90 -52
  60. package/lib/commands/element.js +111 -98
  61. package/lib/commands/find.js +101 -77
  62. package/lib/commands/general.js +106 -75
  63. package/lib/commands/index.js +13 -17
  64. package/lib/driver.js +103 -32
  65. package/lib/fake-app.js +20 -6
  66. package/lib/index.js +4 -7
  67. package/lib/types.ts +42 -0
  68. package/package.json +11 -11
@@ -1,159 +1,184 @@
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 fake_app_1 = require("./fake-app");
10
+ const commands_1 = require("./commands");
11
+ const FAKE_DRIVER_CONSTRAINTS = /** @type {const} */ ({
12
+ app: {
36
13
  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
- }
14
+ isString: true,
15
+ },
16
+ uniqueApp: {
17
+ isBoolean: true,
18
+ },
19
+ });
20
+ /**
21
+ * @typedef {typeof FAKE_DRIVER_CONSTRAINTS} FakeDriverConstraints
22
+ */
23
+ /**
24
+ * @extends {BaseDriver<FakeDriverConstraints>}
25
+ * @implements {ExternalDriver<FakeDriverConstraints>}
26
+ */
27
+ class FakeDriverCore extends driver_1.BaseDriver {
28
+ constructor(opts = {}, shouldValidateCaps = true) {
29
+ super(opts, shouldValidateCaps);
30
+ this.desiredCapConstraints = FAKE_DRIVER_CONSTRAINTS;
31
+ this.appModel = new fake_app_1.FakeApp();
32
+ this.curContext = 'NATIVE_APP';
33
+ this.elMap = {};
34
+ this.focusedElId = null;
35
+ this.maxElId = 0;
36
+ this.fakeThing = null;
37
+ this._proxyActive = false;
69
38
  }
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];
39
+ proxyActive() {
40
+ return this._proxyActive;
76
41
  }
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']
42
+ canProxy() {
43
+ return true;
44
+ }
45
+ proxyReqRes(req, res) {
46
+ // fake implementation of jwp proxy req res
47
+ res.set('content-type', 'application/json');
48
+ const resBodyObj = { value: 'proxied via proxyReqRes' };
49
+ const match = req.originalUrl.match(/\/session\/([^/]+)/);
50
+ resBodyObj.sessionId = match ? match[1] : null;
51
+ res.status(200).send(JSON.stringify(resBodyObj));
52
+ }
53
+ /**
54
+ * @template [T=any]
55
+ * @returns {Promise<T>}
56
+ */
57
+ async proxyCommand( /*url, method, body*/) {
58
+ return /** @type {T} */ ( /** @type {unknown} */('proxied via proxyCommand'));
59
+ }
60
+ /**
61
+ *
62
+ * @param {W3CFakeDriverCaps} jsonwpDesiredCapabilities
63
+ * @param {W3CFakeDriverCaps} [jsonwpRequiredCaps]
64
+ * @param {W3CFakeDriverCaps} [w3cCapabilities]
65
+ * @param {import('@appium/types').DriverData[]} [otherSessionData]
66
+ * @returns {Promise<[string,FakeDriverCaps]>}
67
+ */
68
+ async createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities, otherSessionData = []) {
69
+ // TODO add validation on caps.app that we will get for free from
70
+ // BaseDriver
71
+ // check to see if any other sessions have set uniqueApp. If so, emulate
72
+ // not being able to start a session because of system resources
73
+ for (let d of otherSessionData) {
74
+ if (d.isUnique) {
75
+ throw new driver_1.errors.SessionNotCreatedError('Cannot start session; another ' +
76
+ 'unique session is in progress that requires all resources');
77
+ }
114
78
  }
115
- }
79
+ let [sessionId, caps] = /** @type {[string, FakeDriverCaps]} */ (await super.createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities, otherSessionData));
80
+ this.caps = caps;
81
+ await this.appModel.loadApp(caps.app);
82
+ return [sessionId, caps];
83
+ }
84
+ get driverData() {
85
+ return {
86
+ isUnique: !!this.caps.uniqueApp,
87
+ };
88
+ }
89
+ async getFakeThing() {
90
+ await bluebird_1.default.delay(1);
91
+ return this.fakeThing;
92
+ }
93
+ /**
94
+ * Set the 'thing' value (so that it can be retrieved later)
95
+ *
96
+ * @param {any} thing
97
+ * @returns {Promise<null>}
98
+ */
99
+ async setFakeThing(thing) {
100
+ await bluebird_1.default.delay(1);
101
+ this.fakeThing = thing;
102
+ return null;
103
+ }
104
+ /**
105
+ * Get the driver args that were sent in via the CLI
106
+ *
107
+ * @returns {Promise<typeof this.cliArgs>}
108
+ */
109
+ async getFakeDriverArgs() {
110
+ await bluebird_1.default.delay(1);
111
+ return this.cliArgs;
112
+ }
113
+ /**
114
+ * Add two or maybe even three numbers
115
+ *
116
+ * @param {number} num1
117
+ * @param {number} num2
118
+ * @param {number} [num3]
119
+ * @returns {Promise<number>}
120
+ */
121
+ // eslint-disable-next-line no-unused-vars
122
+ async fakeAddition(num1, num2, num3 = 0) {
123
+ throw new driver_1.errors.NotImplementedError();
124
+ }
125
+ static fakeRoute(req, res) {
126
+ res.send(JSON.stringify({ fakedriver: 'fakeResponse' }));
127
+ }
128
+ static async updateServer(expressApp, httpServer, cliArgs) {
129
+ // eslint-disable-line require-await
130
+ expressApp.all('/fakedriver', FakeDriverCore.fakeRoute);
131
+ expressApp.all('/fakedriverCliArgs', (req, res) => {
132
+ res.send(JSON.stringify(cliArgs));
133
+ });
134
+ }
135
+ }
136
+ exports.FakeDriverCore = FakeDriverCore;
137
+ FakeDriverCore.newMethodMap = ({
138
+ '/session/:sessionId/fakedriver': {
139
+ GET: { command: 'getFakeThing' },
140
+ /**
141
+ * Sets a fake thing
142
+ */
143
+ POST: { command: 'setFakeThing', payloadParams: { required: ['thing'] } },
116
144
  },
117
145
  '/session/:sessionId/fakedriverargs': {
118
- GET: {
119
- command: 'getFakeDriverArgs'
120
- }
121
- }
122
- };
123
- static executeMethodMap = {
146
+ GET: { command: 'getFakeDriverArgs' },
147
+ },
148
+ });
149
+ FakeDriverCore.executeMethodMap = ({
124
150
  'fake: addition': {
125
- command: 'fakeAddition',
126
- params: {
127
- required: ['num1', 'num2'],
128
- optional: ['num3']
129
- }
151
+ command: 'fakeAddition',
152
+ params: { required: ['num1', 'num2'], optional: ['num3'] },
130
153
  },
154
+ /**
155
+ * Gets a thing (a fake thing)
156
+ */
131
157
  'fake: getThing': {
132
- command: 'getFakeThing'
158
+ command: 'getFakeThing',
133
159
  },
134
160
  '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
-
161
+ command: 'setFakeThing',
162
+ params: { required: ['thing'] },
163
+ },
164
+ });
165
+ /**
166
+ * @extends FakeDriverCore
167
+ */
168
+ class FakeDriver extends (0, commands_1.FakeDriverMixin)(FakeDriverCore) {
155
169
  }
156
-
157
170
  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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
171
+ exports.default = FakeDriver;
172
+ /**
173
+ * @typedef {import('./types').FakeDriverCaps} FakeDriverCaps
174
+ * @typedef {import('./types').W3CFakeDriverCaps} W3CFakeDriverCaps
175
+ */
176
+ /**
177
+ * @template {import('@appium/types').Driver} D
178
+ * @typedef {import('@appium/types').DriverClass<D>} DriverClass
179
+ */
180
+ /**
181
+ * @template {import('@appium/types').Constraints} C
182
+ * @typedef {import('@appium/types').ExternalDriver<C>} ExternalDriver
183
+ */
184
+ //# 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":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,UAAN,SAAyBC,kBAAzB,CAAoC;EAClCC,WAAW,CAACC,IAAI,GAAG,EAAR,EAAYC,kBAAkB,GAAG,IAAjC,EAAuC;IAChD,MAAMD,IAAN,EAAYC,kBAAZ;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,UAAL,GAAkB,YAAlB;IACA,KAAKC,KAAL,GAAa,EAAb;IACA,KAAKC,WAAL,GAAmB,IAAnB;IACA,KAAKC,OAAL,GAAe,CAAf;IACA,KAAKC,IAAL,GAAY,EAAZ;IACA,KAAKC,SAAL,GAAiB,IAAjB;IACA,KAAKC,OAAL,GAAe,EAAf;IACA,KAAKC,YAAL,GAAoB,KAApB;IAEA,KAAKC,qBAAL,GAA6B;MAC3BC,GAAG,EAAE;QACHC,QAAQ,EAAE,IADP;QAEHC,QAAQ,EAAE;MAFP;IADsB,CAA7B;EAMD;;EAEDC,WAAW,GAAG;IACZ,OAAO,KAAKL,YAAZ;EACD;;EAEDM,QAAQ,GAAG;IACT,OAAO,IAAP;EACD;;EAEDC,WAAW,CAACC,GAAD,EAAMC,GAAN,EAAW;IAEpBA,GAAG,CAACC,GAAJ,CAAQ,cAAR,EAAwB,kBAAxB;IACA,MAAMC,UAAU,GAAG;MAACC,KAAK,EAAE;IAAR,CAAnB;IACA,MAAMC,KAAK,GAAGL,GAAG,CAACM,WAAJ,CAAgBD,KAAhB,CAAsB,oBAAtB,CAAd;IACAF,UAAU,CAACI,SAAX,GAAuBF,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAc,IAA1C;IACAJ,GAAG,CAACO,MAAJ,CAAW,GAAX,EAAgBC,IAAhB,CAAqBC,IAAI,CAACC,SAAL,CAAeR,UAAf,CAArB;EACD;;EAEDS,YAAY,GAAwB;IAClC,OAAO,0BAAP;EACD;;EAEkB,MAAbC,aAAa,CACjBC,yBADiB,EAEjBC,kBAFiB,EAGjBC,eAHiB,EAIjBC,gBAAgB,GAAG,EAJF,EAKjB;IAMA,KAAK,IAAIC,CAAT,IAAcD,gBAAd,EAAgC;MAC9B,IAAIC,CAAC,CAACC,QAAN,EAAgB;QACd,MAAM,IAAIC,cAAA,CAAOC,sBAAX,CACJ,mCACE,2DAFE,CAAN;MAID;IACF;;IAED,IAAI,CAACd,SAAD,EAAYlB,IAAZ,IAAoB,MAAM,MAAMwB,aAAN,CAC5BC,yBAD4B,EAE5BC,kBAF4B,EAG5BC,eAH4B,EAI5BC,gBAJ4B,CAA9B;IAMA,KAAKjC,QAAL,GAAgB,IAAIsC,gBAAJ,EAAhB;;IACA,IAAIC,eAAA,CAAEC,OAAF,CAAUnC,IAAV,MAAoB,IAApB,IAA4BA,IAAI,CAACoC,MAAL,KAAgB,CAAhD,EAAmD;MACjDpC,IAAI,GAAGA,IAAI,CAAC,CAAD,CAAX;IACD;;IACD,KAAKA,IAAL,GAAYA,IAAZ;IACA,MAAM,KAAKL,QAAL,CAAc0C,OAAd,CAAsBrC,IAAI,CAACK,GAA3B,CAAN;IACA,OAAO,CAACa,SAAD,EAAYlB,IAAZ,CAAP;EACD;;EAEa,IAAVsC,UAAU,GAAG;IACf,OAAO;MACLR,QAAQ,EAAE,CAAC,CAAC,KAAK9B,IAAL,CAAUuC;IADjB,CAAP;EAGD;;EAEiB,MAAZC,YAAY,GAAG;IACnB,MAAMC,iBAAA,CAAEC,KAAF,CAAQ,CAAR,CAAN;IACA,OAAO,KAAKzC,SAAZ;EACD;;EAEiB,MAAZ0C,YAAY,CAACC,KAAD,EAAQ;IACxB,MAAMH,iBAAA,CAAEC,KAAF,CAAQ,CAAR,CAAN;IACA,KAAKzC,SAAL,GAAiB2C,KAAjB;IACA,OAAO,IAAP;EACD;;EAEsB,MAAjBC,iBAAiB,GAAG;IACxB,MAAMJ,iBAAA,CAAEC,KAAF,CAAQ,CAAR,CAAN;IACA,OAAO,KAAKxC,OAAZ;EACD;;EAEkB,OAAZ4C,YAAY,GAAG;IACpB,kCAAkC;MAChCC,GAAG,EAAE;QAACC,OAAO,EAAE;MAAV,CAD2B;MAEhCC,IAAI,EAAE;QAACD,OAAO,EAAE,cAAV;QAA0BE,aAAa,EAAE;UAACC,QAAQ,EAAE,CAAC,OAAD;QAAX;MAAzC;IAF0B,CADd;IAKpB,sCAAsC;MACpCJ,GAAG,EAAE;QAACC,OAAO,EAAE;MAAV;IAD+B;EALlB,CAAH;EAUI,OAAhBI,gBAAgB,GAAG;IACxB,kBAAkB;MAChBJ,OAAO,EAAE,cADO;MAEhBK,MAAM,EAAE;QAACF,QAAQ,EAAE,CAAC,MAAD,EAAS,MAAT,CAAX;QAA6BG,QAAQ,EAAE,CAAC,MAAD;MAAvC;IAFQ,CADM;IAKxB,kBAAkB;MAChBN,OAAO,EAAE;IADO,CALM;IAQxB,kBAAkB;MAChBA,OAAO,EAAE,cADO;MAEhBK,MAAM,EAAE;QAACF,QAAQ,EAAE,CAAC,OAAD;MAAX;IAFQ;EARM,CAAH;;EAcP,OAATI,SAAS,CAAC5C,GAAD,EAAMC,GAAN,EAAW;IACzBA,GAAG,CAACQ,IAAJ,CAASC,IAAI,CAACC,SAAL,CAAe;MAACkC,UAAU,EAAE;IAAb,CAAf,CAAT;EACD;;EAEwB,aAAZC,YAAY,CAACC,UAAD,EAAaC,UAAb,EAAyBzD,OAAzB,EAAkC;IAEzDwD,UAAU,CAACE,GAAX,CAAe,aAAf,EAA8BtE,UAAU,CAACiE,SAAzC;IACAG,UAAU,CAACE,GAAX,CAAe,oBAAf,EAAqC,CAACjD,GAAD,EAAMC,GAAN,KAAc;MACjDA,GAAG,CAACQ,IAAJ,CAASC,IAAI,CAACC,SAAL,CAAepB,OAAf,CAAT;IACD,CAFD;EAGD;;AArIiC;;;AAwIpC2D,MAAM,CAACC,MAAP,CAAcxE,UAAU,CAACyE,SAAzB,EAAoCC,iBAApC"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":"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"}
@@ -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"}