@appium/fake-driver 5.3.0 → 5.5.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.
package/README.md CHANGED
@@ -1,20 +1,7 @@
1
- appium-fake-driver
2
- ===================
1
+ # @appium/fake-driver
3
2
 
4
- [![Greenkeeper badge](https://badges.greenkeeper.io/appium/appium-fake-driver.svg)](https://greenkeeper.io/)
3
+ > Fake Appium driver for internal testing
5
4
 
6
- Issues for this repo are disabled. Log any issues at the [main Appium repo's issue tracker](https://github.com/appium/appium/issues).
5
+ ## License
7
6
 
8
- Work in progress, stay tuned!
9
-
10
- ## Watch
11
-
12
- ```
13
- npm run watch
14
- ```
15
-
16
- ## Test
17
-
18
- ```
19
- npm test
20
- ```
7
+ Apache-2.0
@@ -18,6 +18,8 @@ interface FakeDriverGeneralMixin {
18
18
  execute(script: string, args: any[]): Promise<any>;
19
19
  fakeAddition(a: number, b: number, c?: number): Promise<number>;
20
20
  getLog(type: string): Promise<any>;
21
+ getUrl(): Promise<string>;
22
+ bidiNavigate(context: string, url: string): Promise<void>;
21
23
  }
22
24
  declare module '../driver' {
23
25
  interface FakeDriver extends FakeDriverGeneralMixin {
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAa,WAAW,EAAC,MAAM,WAAW,CAAC;AAKlD,UAAU,sBAAsB;IAC9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACpC;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,sBAAsB;KAAG;CACvD"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAa,WAAW,EAAC,MAAM,WAAW,CAAC;AAKlD,UAAU,sBAAsB;IAC9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,sBAAsB;KAAG;CACvD"}
@@ -69,6 +69,12 @@ const GeneralMixin = {
69
69
  async fakeAddition(num1, num2, num3 = 0) {
70
70
  return num1 + num2 + (num3 ?? 0);
71
71
  },
72
+ async getUrl() {
73
+ return this.url;
74
+ },
75
+ async bidiNavigate(context, url) {
76
+ this.url = url;
77
+ },
72
78
  };
73
79
  (0, mixin_1.mixin)(GeneralMixin);
74
80
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
20
20
  readonly uniqueApp: {
21
21
  readonly isBoolean: true;
22
22
  };
23
+ readonly runClock: {
24
+ readonly isBoolean: true;
25
+ };
23
26
  }, import("@appium/types").StringRecord, import("@appium/types").StringRecord, import("@appium/types").DefaultCreateSessionResult<{
24
27
  readonly app: {
25
28
  readonly presence: true;
@@ -28,6 +31,9 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
28
31
  readonly uniqueApp: {
29
32
  readonly isBoolean: true;
30
33
  };
34
+ readonly runClock: {
35
+ readonly isBoolean: true;
36
+ };
31
37
  }>, void, import("@appium/types").StringRecord>, FakeDriver_base, FakeDriver_base_1, FakeDriver_base_2, FakeDriver_base_3, FakeDriver_base_4 implements ExternalDriver<FakeDriverConstraints> {
32
38
  static newMethodMap: {
33
39
  readonly '/session/:sessionId/fakedriver': {
@@ -92,11 +98,16 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
92
98
  allowCors: NonNullable<boolean | undefined>;
93
99
  allowInsecure: import("@appium/types").AllowInsecureConfig;
94
100
  basePath: string;
101
+ callbackAddress: string | undefined;
95
102
  callbackPort: number;
96
103
  debugLogSpacing: NonNullable<boolean | undefined>;
104
+ defaultCapabilities: import("@appium/types").DefaultCapabilitiesConfig | undefined;
97
105
  denyInsecure: import("@appium/types").DenyInsecureConfig;
106
+ driver: import("@appium/types").DriverConfig | undefined;
98
107
  keepAliveTimeout: number;
99
108
  localTimezone: NonNullable<boolean | undefined>;
109
+ logFile: string | undefined;
110
+ logFilters: import("@appium/types").LogFiltersConfig | undefined;
100
111
  loglevel: NonNullable<import("@appium/types").LogLevelConfig | undefined>;
101
112
  logNoColors: NonNullable<boolean | undefined>;
102
113
  logTimestamp: NonNullable<boolean | undefined>;
@@ -104,24 +115,19 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
104
115
  driversImportChunkSize: number;
105
116
  longStacktrace: NonNullable<boolean | undefined>;
106
117
  noPermsCheck: NonNullable<boolean | undefined>;
118
+ nodeconfig: import("@appium/types").NodeconfigConfig | undefined;
119
+ plugin: import("@appium/types").PluginConfig | undefined;
107
120
  port: number;
108
121
  relaxedSecurityEnabled: NonNullable<boolean | undefined>;
109
122
  sessionOverride: NonNullable<boolean | undefined>;
110
123
  strictCaps: NonNullable<boolean | undefined>;
124
+ tmpDir: string | undefined;
125
+ traceDir: string | undefined;
111
126
  useDrivers: import("@appium/types").UseDriversConfig;
112
127
  usePlugins: import("@appium/types").UsePluginsConfig;
113
- callbackAddress?: string | undefined;
114
- defaultCapabilities?: import("@appium/types").DefaultCapabilitiesConfig | undefined;
115
- driver?: import("@appium/types").DriverConfig | undefined;
116
- logFile?: string | undefined;
117
- logFilters?: import("@appium/types").LogFiltersConfig | undefined;
118
- nodeconfig?: import("@appium/types").NodeconfigConfig | undefined;
119
- plugin?: import("@appium/types").PluginConfig | undefined;
120
- tmpDir?: string | undefined;
121
- traceDir?: string | undefined;
122
- webhook?: string | undefined;
123
- sslCertificatePath?: string | undefined;
124
- sslKeyPath?: string | undefined;
128
+ webhook: string | undefined;
129
+ sslCertificatePath: string | undefined;
130
+ sslKeyPath: string | undefined;
125
131
  fastReset?: boolean | undefined;
126
132
  skipUninstall?: boolean | undefined;
127
133
  }, shouldValidateCaps?: boolean);
@@ -146,6 +152,10 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
146
152
  maxElId: number;
147
153
  /** @type {Record<string,import('./fake-element').FakeElement>} */
148
154
  elMap: Record<string, import('./fake-element').FakeElement>;
155
+ /** @type {string|null} */
156
+ _bidiProxyUrl: string | null;
157
+ /** @type {boolean} */
158
+ _clockRunning: boolean;
149
159
  proxyActive(): boolean;
150
160
  canProxy(): boolean;
151
161
  proxyReqRes(req: any, res: any): void;
@@ -154,10 +164,17 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
154
164
  * @returns {Promise<T>}
155
165
  */
156
166
  proxyCommand<T = any>(): Promise<T>;
167
+ /**
168
+ * @param {string} [sessionId]
169
+ * @returns {Promise<void>}
170
+ */
171
+ deleteSession(sessionId?: string | undefined): Promise<void>;
157
172
  get driverData(): {
158
173
  isUnique: boolean;
159
174
  };
160
175
  getFakeThing(): Promise<Thing | null>;
176
+ startClock(): Promise<void>;
177
+ stopClock(): void;
161
178
  /**
162
179
  * Set the 'thing' value (so that it can be retrieved later)
163
180
  *
@@ -205,5 +222,9 @@ declare namespace FAKE_DRIVER_CONSTRAINTS {
205
222
  namespace uniqueApp {
206
223
  let isBoolean: true;
207
224
  }
225
+ namespace runClock {
226
+ let isBoolean_1: true;
227
+ export { isBoolean_1 as isBoolean };
228
+ }
208
229
  }
209
230
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;AAcA;;;GAGG;AAEH;;;;GAIG;AACH;;;;;;;;;;;;;;;;uKAF+B,qBAAqB;IA+JlD;;;;;YAGI;;eAEG;;;;;;;;;;;;;;;;;;;;;;;;MAaJ;IAEH;;;;;;;;QAKE;;WAEG;;;;;;;;;;;;;MAWF;IAEH,2CAEC;IAED,mFAMC;IAhLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAcC;IA5CD;;;OAGG;IACH,gCAHU,qBAAqB,CAGT;IAEtB,qBAAqB;IACrB,YADW,MAAM,CACN;IAEX,sBAAsB;IACtB,UADW,OAAO,CACT;IAET,sBAAsB;IACtB,cADW,OAAO,CACL;IAEb,sBAAsB;IACtB,OADW,OAAO,CACZ;IAEN,sBAAsB;IACtB,aADW,MAAM,QACL;IAEZ,qBAAqB;IACrB,WADW,KAAK,QACN;IAEV,qBAAqB;IACrB,SADW,MAAM,CACT;IAER,kEAAkE;IAClE,OADW,OAAO,MAAM,EAAC,OAAO,gBAAgB,EAAE,WAAW,CAAC,CACxD;IAkBN,uBAEC;IAED,oBAEC;IAED,sCAOC;IAED;;;OAGG;IACH,oCAEC;IAkCD;;MAIC;IAED,sCAGC;IAED;;;;;OAKG;IACH,oBAHW,KAAK,GACH,QAAQ,IAAI,CAAC,CAMzB;IAED;;;;OAIG;IACH,qBAFa,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAKxC;IAED;;;;OAIG;IACH,+BAFa,QAAQ,MAAM,EAAE,CAAC,CAM7B;IAED;;;;OAIG;IACH,yBAFa,QAAQ,IAAI,CAAC,CAIzB;CAqDF;;;;;oCAxNY,8BAA8B;6BA+N9B,OAAO,SAAS,EAAE,cAAc;gCAChC,OAAO,SAAS,EAAE,iBAAiB;sBACnC,OAAO,eAAe,EAAE,OAAO;0TAK/B,OAAO,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;4EAKtC,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;0BAIzC,OAAO,eAAe,EAAE,WAAW;2BA9Pf,eAAe;wBAC1B,YAAY"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;AAiBA;;;GAGG;AAEH;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;uKAF+B,qBAAqB;IAsMlD;;;;;YAGI;;eAEG;;;;;;;;;;;;;;;;;;;;;;;;MAaJ;IAEH;;;;;;;;QAKE;;WAEG;;;;;;;;;;;;;MAWF;IAEH,2CAEC;IAED,mFAMC;IAjND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAgBC;IApDD;;;OAGG;IACH,gCAHU,qBAAqB,CAGT;IAEtB,qBAAqB;IACrB,YADW,MAAM,CACN;IAEX,sBAAsB;IACtB,UADW,OAAO,CACT;IAET,sBAAsB;IACtB,cADW,OAAO,CACL;IAEb,sBAAsB;IACtB,OADW,OAAO,CACZ;IAEN,sBAAsB;IACtB,aADW,MAAM,QACL;IAEZ,qBAAqB;IACrB,WADW,KAAK,QACN;IAEV,qBAAqB;IACrB,SADW,MAAM,CACT;IAER,kEAAkE;IAClE,OADW,OAAO,MAAM,EAAC,OAAO,gBAAgB,EAAE,WAAW,CAAC,CACxD;IAEN,0BAA0B;IAC1B,eADW,MAAM,GAAC,IAAI,CACR;IAEd,sBAAsB;IACtB,eADW,OAAO,CACI;IAoBtB,uBAEC;IAED,oBAEC;IAMD,sCAOC;IAED;;;OAGG;IACH,oCAEC;IAqCD;;;OAGG;IACH,+CAFa,QAAQ,IAAI,CAAC,CAKzB;IAED;;MAIC;IAED,sCAGC;IAED,4BASC;IAED,kBAEC;IAED;;;;;OAKG;IACH,oBAHW,KAAK,GACH,QAAQ,IAAI,CAAC,CAMzB;IAED;;;;OAIG;IACH,qBAFa,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,CAKxC;IAED;;;;OAIG;IACH,+BAFa,QAAQ,MAAM,EAAE,CAAC,CAM7B;IAED;;;;OAIG;IACH,yBAFa,QAAQ,IAAI,CAAC,CAIzB;CAqDF;;;;;oCA/PY,8BAA8B;6BAsQ9B,OAAO,SAAS,EAAE,cAAc;gCAChC,OAAO,SAAS,EAAE,iBAAiB;sBACnC,OAAO,eAAe,EAAE,OAAO;0TAK/B,OAAO,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;4EAKtC,OAAO,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;0BAIzC,OAAO,eAAe,EAAE,WAAW;2BAxSf,eAAe;wBAC1B,YAAY"}
@@ -15,6 +15,9 @@ const FAKE_DRIVER_CONSTRAINTS = /** @type {const} */ ({
15
15
  uniqueApp: {
16
16
  isBoolean: true,
17
17
  },
18
+ runClock: {
19
+ isBoolean: true,
20
+ },
18
21
  });
19
22
  /**
20
23
  * Constraints for {@linkcode FakeDriver}'s capabilites
@@ -28,6 +31,8 @@ const FAKE_DRIVER_CONSTRAINTS = /** @type {const} */ ({
28
31
  class FakeDriver extends driver_1.BaseDriver {
29
32
  constructor(opts = /** @type {import('@appium/types').InitialOpts} */ ({}), shouldValidateCaps = true) {
30
33
  super(opts, shouldValidateCaps);
34
+ /** @type {boolean} */
35
+ this._clockRunning = false;
31
36
  this.curContext = 'NATIVE_APP';
32
37
  this.elMap = {};
33
38
  this.focusedElId = null;
@@ -37,6 +42,8 @@ class FakeDriver extends driver_1.BaseDriver {
37
42
  this.shook = false;
38
43
  this.appModel = new fake_app_1.FakeApp();
39
44
  this.desiredCapConstraints = FAKE_DRIVER_CONSTRAINTS;
45
+ this.doesSupportBidi = true;
46
+ this._bidiProxyUrl = null;
40
47
  }
41
48
  proxyActive() {
42
49
  return this._proxyActive;
@@ -44,6 +51,9 @@ class FakeDriver extends driver_1.BaseDriver {
44
51
  canProxy() {
45
52
  return true;
46
53
  }
54
+ get bidiProxyUrl() {
55
+ return this._bidiProxyUrl;
56
+ }
47
57
  proxyReqRes(req, res) {
48
58
  // fake implementation of jwp proxy req res
49
59
  res.set('content-type', 'application/json');
@@ -82,8 +92,19 @@ class FakeDriver extends driver_1.BaseDriver {
82
92
  let [sessionId, caps] = /** @type {[string, FakeDriverCaps]} */ (await super.createSession(w3cCapabilities1, w3cCapabilities2, w3cCapabilities3, driverData));
83
93
  this.caps = caps;
84
94
  await this.appModel.loadApp(caps.app);
95
+ if (this.caps.runClock) {
96
+ this.startClock();
97
+ }
85
98
  return [sessionId, caps];
86
99
  }
100
+ /**
101
+ * @param {string} [sessionId]
102
+ * @returns {Promise<void>}
103
+ */
104
+ async deleteSession(sessionId) {
105
+ this.stopClock();
106
+ return await super.deleteSession(sessionId);
107
+ }
87
108
  get driverData() {
88
109
  return {
89
110
  isUnique: !!this.caps.uniqueApp,
@@ -93,6 +114,19 @@ class FakeDriver extends driver_1.BaseDriver {
93
114
  await bluebird_1.default.delay(1);
94
115
  return this.fakeThing;
95
116
  }
117
+ async startClock() {
118
+ this._clockRunning = true;
119
+ while (this._clockRunning) {
120
+ await bluebird_1.default.delay(500);
121
+ this.eventEmitter.emit('bidiEvent', {
122
+ method: 'clock.currentTime',
123
+ params: { time: Date.now() },
124
+ });
125
+ }
126
+ }
127
+ stopClock() {
128
+ this._clockRunning = false;
129
+ }
96
130
  /**
97
131
  * Set the 'thing' value (so that it can be retrieved later)
98
132
  *
@@ -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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"}
@@ -23,6 +23,9 @@ interface FakeDriverGeneralMixin {
23
23
  execute(script: string, args: any[]): Promise<any>;
24
24
  fakeAddition(a: number, b: number, c?: number): Promise<number>;
25
25
  getLog(type: string): Promise<any>;
26
+ getUrl(): Promise<string>;
27
+
28
+ bidiNavigate(context: string, url: string): Promise<void>;
26
29
  }
27
30
 
28
31
  declare module '../driver' {
@@ -111,6 +114,14 @@ const GeneralMixin: FakeDriverGeneralMixin = {
111
114
  async fakeAddition(this: FakeDriver, num1: number, num2: number, num3 = 0) {
112
115
  return num1 + num2 + (num3 ?? 0);
113
116
  },
117
+
118
+ async getUrl() {
119
+ return this.url;
120
+ },
121
+
122
+ async bidiNavigate(context: string, url: string) {
123
+ this.url = url;
124
+ },
114
125
  };
115
126
 
116
127
  mixin(GeneralMixin);
package/lib/driver.js CHANGED
@@ -10,6 +10,9 @@ const FAKE_DRIVER_CONSTRAINTS = /** @type {const} */ ({
10
10
  uniqueApp: {
11
11
  isBoolean: true,
12
12
  },
13
+ runClock: {
14
+ isBoolean: true,
15
+ },
13
16
  });
14
17
 
15
18
  /**
@@ -53,6 +56,12 @@ export class FakeDriver extends BaseDriver {
53
56
  /** @type {Record<string,import('./fake-element').FakeElement>} */
54
57
  elMap;
55
58
 
59
+ /** @type {string|null} */
60
+ _bidiProxyUrl;
61
+
62
+ /** @type {boolean} */
63
+ _clockRunning = false;
64
+
56
65
  constructor(
57
66
  opts = /** @type {import('@appium/types').InitialOpts} */ ({}),
58
67
  shouldValidateCaps = true,
@@ -67,6 +76,8 @@ export class FakeDriver extends BaseDriver {
67
76
  this.shook = false;
68
77
  this.appModel = new FakeApp();
69
78
  this.desiredCapConstraints = FAKE_DRIVER_CONSTRAINTS;
79
+ this.doesSupportBidi = true;
80
+ this._bidiProxyUrl = null;
70
81
  }
71
82
 
72
83
  proxyActive() {
@@ -77,6 +88,10 @@ export class FakeDriver extends BaseDriver {
77
88
  return true;
78
89
  }
79
90
 
91
+ get bidiProxyUrl() {
92
+ return this._bidiProxyUrl;
93
+ }
94
+
80
95
  proxyReqRes(req, res) {
81
96
  // fake implementation of jwp proxy req res
82
97
  res.set('content-type', 'application/json');
@@ -123,9 +138,21 @@ export class FakeDriver extends BaseDriver {
123
138
  );
124
139
  this.caps = caps;
125
140
  await this.appModel.loadApp(caps.app);
141
+ if (this.caps.runClock) {
142
+ this.startClock();
143
+ }
126
144
  return [sessionId, caps];
127
145
  }
128
146
 
147
+ /**
148
+ * @param {string} [sessionId]
149
+ * @returns {Promise<void>}
150
+ */
151
+ async deleteSession(sessionId) {
152
+ this.stopClock();
153
+ return await super.deleteSession(sessionId);
154
+ }
155
+
129
156
  get driverData() {
130
157
  return {
131
158
  isUnique: !!this.caps.uniqueApp,
@@ -137,6 +164,21 @@ export class FakeDriver extends BaseDriver {
137
164
  return this.fakeThing;
138
165
  }
139
166
 
167
+ async startClock() {
168
+ this._clockRunning = true;
169
+ while (this._clockRunning) {
170
+ await B.delay(500);
171
+ this.eventEmitter.emit('bidiEvent', {
172
+ method: 'clock.currentTime',
173
+ params: {time: Date.now()},
174
+ });
175
+ }
176
+ }
177
+
178
+ stopClock() {
179
+ this._clockRunning = false;
180
+ }
181
+
140
182
  /**
141
183
  * Set the 'thing' value (so that it can be retrieved later)
142
184
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/fake-driver",
3
- "version": "5.3.0",
3
+ "version": "5.5.0",
4
4
  "description": "Mock driver used internally by Appium for testing. Ignore",
5
5
  "keywords": [
6
6
  "automation",
@@ -73,9 +73,15 @@
73
73
  "fake-error": "./build/lib/scripts/fake-error.js",
74
74
  "fake-success": "./build/lib/scripts/fake-success.js",
75
75
  "fake-stdin": "./build/lib/scripts/fake-stdin.js"
76
+ },
77
+ "doctor": {
78
+ "checks": [
79
+ "./doctor/fake1.js",
80
+ "./doctor/fake2.js"
81
+ ]
76
82
  }
77
83
  },
78
84
  "main": "./build/lib/index.js",
79
85
  "types": "./build/lib/index.d.ts",
80
- "gitHead": "5c1d20517cfc8773cd5ffb0f8bb996668d71116b"
86
+ "gitHead": "9cc598a92c2f0d2dfbf40d54698f0ee39b50e4dc"
81
87
  }