@appium/fake-driver 5.0.0 → 5.1.2

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 +16 -31
  2. package/build/lib/commands/alert.d.ts.map +1 -1
  3. package/build/lib/commands/contexts.d.ts +18 -47
  4. package/build/lib/commands/contexts.d.ts.map +1 -1
  5. package/build/lib/commands/contexts.js +2 -3
  6. package/build/lib/commands/contexts.js.map +1 -1
  7. package/build/lib/commands/element.d.ts +21 -32
  8. package/build/lib/commands/element.d.ts.map +1 -1
  9. package/build/lib/commands/element.js +4 -0
  10. package/build/lib/commands/element.js.map +1 -1
  11. package/build/lib/commands/find.d.ts +22 -32
  12. package/build/lib/commands/find.d.ts.map +1 -1
  13. package/build/lib/commands/find.js +5 -0
  14. package/build/lib/commands/find.js.map +1 -1
  15. package/build/lib/commands/general.d.ts +26 -58
  16. package/build/lib/commands/general.d.ts.map +1 -1
  17. package/build/lib/commands/general.js +4 -0
  18. package/build/lib/commands/general.js.map +1 -1
  19. package/build/lib/commands/index.d.ts +85 -160
  20. package/build/lib/commands/index.d.ts.map +1 -1
  21. package/build/lib/commands/index.js +0 -1
  22. package/build/lib/commands/index.js.map +1 -1
  23. package/build/lib/driver.d.ts +35 -7
  24. package/build/lib/driver.d.ts.map +1 -1
  25. package/build/lib/driver.js +39 -9
  26. package/build/lib/driver.js.map +1 -1
  27. package/build/lib/index.d.ts +2 -0
  28. package/build/lib/index.d.ts.map +1 -1
  29. package/build/lib/index.js +4 -0
  30. package/build/lib/index.js.map +1 -1
  31. package/build/tsconfig.tsbuildinfo +1 -1
  32. package/lib/commands/contexts.js +2 -3
  33. package/lib/commands/element.js +4 -0
  34. package/lib/commands/find.js +5 -0
  35. package/lib/commands/general.js +6 -0
  36. package/lib/commands/index.js +0 -1
  37. package/lib/driver.js +41 -19
  38. package/lib/index.js +5 -0
  39. package/package.json +5 -4
  40. package/tsconfig.json +20 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/index.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH,sCAHW,OAAO,eAAe,EAAE,KAAK,CAAC,OAAO,WAAW,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/index.js"],"names":[],"mappings":";AAMA;;;GAGG;AACH,sCAFW,OAAO,eAAe,EAAE,KAAK,CAAC,OAAO,WAAW,EAAE,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3E"}
@@ -9,7 +9,6 @@ const general_1 = require("./general");
9
9
  /**
10
10
  *
11
11
  * @param {import('@appium/types').Class<import('../driver').FakeDriverCore>} Base
12
- * @returns
13
12
  */
14
13
  function FakeDriverMixin(Base) {
15
14
  return (0, general_1.GeneralMixin)((0, find_1.FindMixin)((0, element_1.ElementMixin)((0, alert_1.AlertMixin)((0, contexts_1.ContextsMixin)(Base)))));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/index.js"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,yCAAyC;AACzC,uCAAuC;AACvC,iCAAiC;AACjC,uCAAuC;AAEvC;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAI;IAClC,OAAO,IAAA,sBAAY,EAAC,IAAA,gBAAS,EAAC,IAAA,sBAAY,EAAC,IAAA,kBAAU,EAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAFD,0CAEC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/index.js"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,yCAAyC;AACzC,uCAAuC;AACvC,iCAAiC;AACjC,uCAAuC;AAEvC;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAI;IAClC,OAAO,IAAA,sBAAY,EAAC,IAAA,gBAAS,EAAC,IAAA,sBAAY,EAAC,IAAA,kBAAU,EAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAFD,0CAEC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFE"}
@@ -34,6 +34,17 @@ export class FakeDriverCore extends BaseDriver<{
34
34
  readonly command: "getFakeDriverArgs";
35
35
  };
36
36
  };
37
+ readonly '/session/:sessionId/deprecated': {
38
+ readonly POST: {
39
+ readonly command: "callDeprecatedCommand";
40
+ readonly deprecated: true;
41
+ };
42
+ };
43
+ readonly '/session/:sessionId/doubleclick': {
44
+ readonly POST: {
45
+ readonly command: "doubleClick";
46
+ };
47
+ };
37
48
  };
38
49
  static executeMethodMap: {
39
50
  readonly 'fake: addition': {
@@ -55,6 +66,9 @@ export class FakeDriverCore extends BaseDriver<{
55
66
  readonly required: readonly ["thing"];
56
67
  };
57
68
  };
69
+ readonly 'fake: getDeprecatedCommandsCalled': {
70
+ readonly command: "getDeprecatedCommandsCalled";
71
+ };
58
72
  };
59
73
  static fakeRoute(req: any, res: any): void;
60
74
  static updateServer(expressApp: any, httpServer: any, cliArgs: any): Promise<void>;
@@ -76,6 +90,7 @@ export class FakeDriverCore extends BaseDriver<{
76
90
  maxElId: number;
77
91
  fakeThing: any;
78
92
  _proxyActive: boolean;
93
+ shook: boolean;
79
94
  proxyActive(): boolean;
80
95
  canProxy(): boolean;
81
96
  proxyReqRes(req: any, res: any): void;
@@ -85,14 +100,15 @@ export class FakeDriverCore extends BaseDriver<{
85
100
  */
86
101
  proxyCommand<T = any>(): Promise<T>;
87
102
  /**
88
- *
89
- * @param {W3CFakeDriverCaps} jsonwpDesiredCapabilities
90
- * @param {W3CFakeDriverCaps} [jsonwpRequiredCaps]
91
- * @param {W3CFakeDriverCaps} [w3cCapabilities]
92
- * @param {import('@appium/types').DriverData[]} [otherSessionData]
93
- * @returns {Promise<[string,FakeDriverCaps]>}
103
+ * Comment for `createSession` in `FakeDriver`
104
+ * @param {W3CFakeDriverCaps} w3cCapabilities1 W3C Capabilities
105
+ * @param {W3CFakeDriverCaps} [w3cCapabilities2] W3C Capabilities
106
+ * @param {W3CFakeDriverCaps} [w3cCapabilities3] W3C Capabilities
107
+ * @param {import('@appium/types').DriverData[]} [driverData] Other session data
108
+ * @override
109
+ * @returns {Promise<[string,FakeDriverCaps]>} Session ID and normalized capabilities
94
110
  */
95
- createSession(jsonwpDesiredCapabilities: W3CFakeDriverCaps, jsonwpRequiredCaps?: import("./types").W3CFakeDriverCaps | undefined, w3cCapabilities?: import("./types").W3CFakeDriverCaps | undefined, otherSessionData?: import("@appium/types").DriverData[] | undefined): Promise<[string, Partial<import("@appium/types").ConstraintsToCaps<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS & {
111
+ override createSession(w3cCapabilities1: W3CFakeDriverCaps, w3cCapabilities2?: import("./types").W3CFakeDriverCaps | undefined, w3cCapabilities3?: import("./types").W3CFakeDriverCaps | undefined, driverData?: import("@appium/types").DriverData[] | undefined): Promise<[string, Partial<import("@appium/types").ConstraintsToCaps<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS & {
96
112
  readonly app: {
97
113
  readonly presence: true;
98
114
  readonly isString: true;
@@ -118,6 +134,18 @@ export class FakeDriverCore extends BaseDriver<{
118
134
  * @returns {Promise<typeof this.cliArgs>}
119
135
  */
120
136
  getFakeDriverArgs(): Promise<typeof this.cliArgs>;
137
+ /**
138
+ * This is a command that will return a list of deprecated command names called
139
+ *
140
+ * @returns {Promise<string[]>}
141
+ */
142
+ getDeprecatedCommandsCalled(): Promise<string[]>;
143
+ /**
144
+ * This is a command that exists just to be an example of a deprecated command
145
+ *
146
+ * @returns {Promise<void>}
147
+ */
148
+ callDeprecatedCommand(): Promise<void>;
121
149
  /**
122
150
  * Add two or maybe even three numbers
123
151
  *
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":"AAeA;;GAEG;AAEH;;;GAGG;AACH;;;;;;;;6BAF+B,qBAAqB;IAuHlD;;;;;YAGI;;eAEG;;;;;;;;;;;;;MAMJ;IAEH;;;;;;;;QAKE;;WAEG;;;;;;;;;;MAQF;IAeH,2CAEC;IAED,mFAMC;IAlKD,qDAQC;IAfD;;;;;;;;MAAgD;IAEhD,qBAAqB;IACrB,YADW,MAAM,CACN;IAEX,kBAAyB;IAKvB,UAAe;IACf,iBAAuB;IACvB,gBAAgB;IAChB,eAAqB;IACrB,sBAAyB;IAG3B,uBAEC;IAED,oBAEC;IAED,sCAOC;IAED;;;OAGG;IACH,oCAEC;IAED;;;;;;;OAOG;IACH,yCANW,iBAAiB;;;;;;;;iBAqC3B;IAED;;MAIC;IAED,6BAGC;IAED;;;;;OAKG;IACH,oBAHW,GAAG,GACD,QAAQ,IAAI,CAAC,CAMzB;IAED;;;;OAIG;IACH,qBAFa,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAKxC;IAgCD;;;;;;;OAOG;IAEH,mBANW,MAAM,QACN,MAAM,8BAEJ,QAAQ,MAAM,CAAC,CAK3B;CAaF;AAED;;GAEG;AACH;CAAkE;;oCAvLrD,8BAA8B;6BA2L9B,OAAO,SAAS,EAAE,cAAc;gCAChC,OAAO,SAAS,EAAE,iBAAiB;4KAKnC,OAAO,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;qGAKtC,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":"AAgBA;;GAEG;AAEH;;;GAGG;AACH;;;;;;;;6BAF+B,qBAAqB;IAkIlD;;;;;YAGI;;eAEG;;;;;;;;;;;;;;;;;;;;;;;;MAaJ;IAEH;;;;;;;;QAKE;;WAEG;;;;;;;;;;;;;MAWF;IAeH,2CAEC;IAED,mFAMC;IAvLD,qDASC;IAhBD;;;;;;;;MAAgD;IAEhD,qBAAqB;IACrB,YADW,MAAM,CACN;IAEX,kBAAyB;IAKvB,UAAe;IACf,iBAAuB;IACvB,gBAAgB;IAChB,eAAqB;IACrB,sBAAyB;IACzB,eAAkB;IAGpB,uBAEC;IAED,oBAEC;IAED,sCAOC;IAED;;;OAGG;IACH,oCAEC;IAED;;;;;;;;OAQG;IACH,yCAPW,iBAAiB;;;;;;;;iBA4B3B;IAED;;MAIC;IAED,6BAGC;IAED;;;;;OAKG;IACH,oBAHW,GAAG,GACD,QAAQ,IAAI,CAAC,CAMzB;IAED;;;;OAIG;IACH,qBAFa,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAKxC;IAED;;;;OAIG;IACH,+BAFa,QAAQ,MAAM,EAAE,CAAC,CAK7B;IAED;;;;OAIG;IACH,yBAFa,QAAQ,IAAI,CAAC,CAIzB;IA0CD;;;;;;;OAOG;IAEH,mBANW,MAAM,QACN,MAAM,8BAEJ,QAAQ,MAAM,CAAC,CAK3B;CAaF;AAED;;GAEG;AACH;CAAkE;;oCA5MrD,8BAA8B;6BAgN9B,OAAO,SAAS,EAAE,cAAc;gCAChC,OAAO,SAAS,EAAE,iBAAiB;4KAKnC,OAAO,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;qGAKtC,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FakeDriver = exports.FakeDriverCore = void 0;
7
7
  const bluebird_1 = __importDefault(require("bluebird"));
8
8
  const driver_1 = require("appium/driver");
9
+ const protocol_1 = require("@appium/base-driver/build/lib/protocol/protocol");
9
10
  const fake_app_1 = require("./fake-app");
10
11
  const commands_1 = require("./commands");
11
12
  const FAKE_DRIVER_CONSTRAINTS = /** @type {const} */ ({
@@ -35,6 +36,7 @@ class FakeDriverCore extends driver_1.BaseDriver {
35
36
  this.maxElId = 0;
36
37
  this.fakeThing = null;
37
38
  this._proxyActive = false;
39
+ this.shook = false;
38
40
  }
39
41
  proxyActive() {
40
42
  return this._proxyActive;
@@ -58,25 +60,26 @@ class FakeDriverCore extends driver_1.BaseDriver {
58
60
  return /** @type {T} */ ( /** @type {unknown} */('proxied via proxyCommand'));
59
61
  }
60
62
  /**
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]>}
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
67
70
  */
68
- async createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities, otherSessionData = []) {
71
+ async createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities3, driverData = []) {
69
72
  // TODO add validation on caps.app that we will get for free from
70
73
  // BaseDriver
71
74
  // check to see if any other sessions have set uniqueApp. If so, emulate
72
75
  // not being able to start a session because of system resources
73
- for (let d of otherSessionData) {
76
+ for (let d of driverData) {
74
77
  if (d.isUnique) {
75
78
  throw new driver_1.errors.SessionNotCreatedError('Cannot start session; another ' +
76
79
  'unique session is in progress that requires all resources');
77
80
  }
78
81
  }
79
- let [sessionId, caps] = /** @type {[string, FakeDriverCaps]} */ (await super.createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities, otherSessionData));
82
+ let [sessionId, caps] = /** @type {[string, FakeDriverCaps]} */ (await super.createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities3, driverData));
80
83
  this.caps = caps;
81
84
  await this.appModel.loadApp(caps.app);
82
85
  return [sessionId, caps];
@@ -110,6 +113,23 @@ class FakeDriverCore extends driver_1.BaseDriver {
110
113
  await bluebird_1.default.delay(1);
111
114
  return this.cliArgs;
112
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
+ }
113
133
  /**
114
134
  * Add two or maybe even three numbers
115
135
  *
@@ -145,6 +165,13 @@ FakeDriverCore.newMethodMap = ({
145
165
  '/session/:sessionId/fakedriverargs': {
146
166
  GET: { command: 'getFakeDriverArgs' },
147
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
+ },
148
175
  });
149
176
  FakeDriverCore.executeMethodMap = ({
150
177
  'fake: addition': {
@@ -161,6 +188,9 @@ FakeDriverCore.executeMethodMap = ({
161
188
  command: 'setFakeThing',
162
189
  params: { required: ['thing'] },
163
190
  },
191
+ 'fake: getDeprecatedCommandsCalled': {
192
+ command: 'getDeprecatedCommandsCalled',
193
+ },
164
194
  });
165
195
  /**
166
196
  * @extends FakeDriverCore
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export type W3CFakeDriverCaps = import('./types').W3CFakeDriverCaps;
2
+ export type FakeDriverCaps = import('./types').FakeDriverCaps;
1
3
  import { FakeDriver } from "./driver";
2
4
  import { startServer } from "./server";
3
5
  export function main(): Promise<import("../../types/build/lib").AppiumServer>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;AAMA,8EAQC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":"gCAmBa,OAAO,SAAS,EAAE,iBAAiB;6BACnC,OAAO,SAAS,EAAE,cAAc;;;AAd7C,8EAQC"}
@@ -17,4 +17,8 @@ async function main() {
17
17
  return await (0, server_1.startServer)(port, host);
18
18
  }
19
19
  exports.main = main;
20
+ /**
21
+ * @typedef {import('./types').W3CFakeDriverCaps} W3CFakeDriverCaps
22
+ * @typedef {import('./types').FakeDriverCaps} FakeDriverCaps
23
+ */
20
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;AAAA,qCAAoC;AAgB5B,2FAhBA,mBAAU,OAgBA;AAflB,qCAAqC;AAejB,4FAfZ,oBAAW,OAeY;AAb/B,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC;IACzE,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IACnD,OAAO,MAAM,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAEgC,oBAAI"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;AAAA,qCAAoC;AAgB5B,2FAhBA,mBAAU,OAgBA;AAflB,qCAAqC;AAejB,4FAfZ,oBAAW,OAeY;AAb/B,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC;IACzE,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IACnD,OAAO,MAAM,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAEgC,oBAAI;AAErC;;;GAGG"}