@appium/fake-driver 5.2.11 → 5.4.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 +4 -17
- package/build/lib/commands/general.d.ts +2 -0
- package/build/lib/commands/general.d.ts.map +1 -1
- package/build/lib/commands/general.js +6 -0
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/driver.d.ts +26 -3
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +35 -1
- package/build/lib/driver.js.map +1 -1
- package/build/lib/fake-driver-schema.d.ts +4 -4
- package/lib/commands/general.ts +11 -0
- package/lib/driver.js +42 -0
- package/package.json +10 -10
- package/index.js +0 -11
package/README.md
CHANGED
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
appium
|
|
2
|
-
===================
|
|
1
|
+
# @appium/fake-driver
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
> Fake Appium driver for internal testing
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
## License
|
|
7
6
|
|
|
8
|
-
|
|
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;
|
|
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":";;AACA,0CAAqC;AAErC,mCAA8B;AAE9B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"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"}
|
package/build/lib/driver.d.ts
CHANGED
|
@@ -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': {
|
|
@@ -100,6 +106,8 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
|
|
|
100
106
|
loglevel: NonNullable<import("@appium/types").LogLevelConfig | undefined>;
|
|
101
107
|
logNoColors: NonNullable<boolean | undefined>;
|
|
102
108
|
logTimestamp: NonNullable<boolean | undefined>;
|
|
109
|
+
pluginsImportChunkSize: number;
|
|
110
|
+
driversImportChunkSize: number;
|
|
103
111
|
longStacktrace: NonNullable<boolean | undefined>;
|
|
104
112
|
noPermsCheck: NonNullable<boolean | undefined>;
|
|
105
113
|
port: number;
|
|
@@ -144,6 +152,10 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
|
|
|
144
152
|
maxElId: number;
|
|
145
153
|
/** @type {Record<string,import('./fake-element').FakeElement>} */
|
|
146
154
|
elMap: Record<string, import('./fake-element').FakeElement>;
|
|
155
|
+
/** @type {string|null} */
|
|
156
|
+
_bidiProxyUrl: string | null;
|
|
157
|
+
/** @type {boolean} */
|
|
158
|
+
_clockRunning: boolean;
|
|
147
159
|
proxyActive(): boolean;
|
|
148
160
|
canProxy(): boolean;
|
|
149
161
|
proxyReqRes(req: any, res: any): void;
|
|
@@ -152,10 +164,17 @@ export class FakeDriver<Thing = any> extends BaseDriver<{
|
|
|
152
164
|
* @returns {Promise<T>}
|
|
153
165
|
*/
|
|
154
166
|
proxyCommand<T = any>(): Promise<T>;
|
|
167
|
+
/**
|
|
168
|
+
* @param {string} [sessionId]
|
|
169
|
+
* @returns {Promise<void>}
|
|
170
|
+
*/
|
|
171
|
+
deleteSession(sessionId?: string | undefined): Promise<void>;
|
|
155
172
|
get driverData(): {
|
|
156
173
|
isUnique: boolean;
|
|
157
174
|
};
|
|
158
175
|
getFakeThing(): Promise<Thing | null>;
|
|
176
|
+
startClock(): Promise<void>;
|
|
177
|
+
stopClock(): void;
|
|
159
178
|
/**
|
|
160
179
|
* Set the 'thing' value (so that it can be retrieved later)
|
|
161
180
|
*
|
|
@@ -197,11 +216,15 @@ import { BaseDriver } from 'appium/driver';
|
|
|
197
216
|
import { FakeApp } from './fake-app';
|
|
198
217
|
declare namespace FAKE_DRIVER_CONSTRAINTS {
|
|
199
218
|
namespace app {
|
|
200
|
-
|
|
201
|
-
|
|
219
|
+
let presence: true;
|
|
220
|
+
let isString: true;
|
|
202
221
|
}
|
|
203
222
|
namespace uniqueApp {
|
|
204
|
-
|
|
223
|
+
let isBoolean: true;
|
|
224
|
+
}
|
|
225
|
+
namespace runClock {
|
|
226
|
+
let isBoolean_1: true;
|
|
227
|
+
export { isBoolean_1 as isBoolean };
|
|
205
228
|
}
|
|
206
229
|
}
|
|
207
230
|
//# sourceMappingURL=driver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;
|
|
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"}
|
package/build/lib/driver.js
CHANGED
|
@@ -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
|
*
|
|
@@ -142,6 +176,7 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
142
176
|
});
|
|
143
177
|
}
|
|
144
178
|
}
|
|
179
|
+
exports.FakeDriver = FakeDriver;
|
|
145
180
|
FakeDriver.newMethodMap = ({
|
|
146
181
|
'/session/:sessionId/fakedriver': {
|
|
147
182
|
GET: { command: 'getFakeThing' },
|
|
@@ -180,7 +215,6 @@ FakeDriver.executeMethodMap = ({
|
|
|
180
215
|
command: 'getDeprecatedCommandsCalled',
|
|
181
216
|
},
|
|
182
217
|
});
|
|
183
|
-
exports.FakeDriver = FakeDriver;
|
|
184
218
|
require("./commands");
|
|
185
219
|
exports.default = FakeDriver;
|
|
186
220
|
/**
|
package/build/lib/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":";;;;;;AAAA,wDAAyB;AACzB,0CAAiD;AACjD,yCAAmC;AAEnC,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;;;GAGG;AAEH;;;;GAIG;AACH,MAAa,UAAW,SAAQ,mBAAU;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.js"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
declare namespace _default {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
let type: string;
|
|
3
|
+
let title: string;
|
|
4
|
+
let description: string;
|
|
5
|
+
let properties: {
|
|
6
6
|
'silly-web-server-port': {
|
|
7
7
|
type: string;
|
|
8
8
|
minimum: number;
|
package/lib/commands/general.ts
CHANGED
|
@@ -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
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "Mock driver used internally by Appium for testing. Ignore",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -23,14 +23,10 @@
|
|
|
23
23
|
},
|
|
24
24
|
"license": "Apache-2.0",
|
|
25
25
|
"author": "https://github.com/appium",
|
|
26
|
-
"bin": {
|
|
27
|
-
"appium-fake-driver": "index.js"
|
|
28
|
-
},
|
|
29
26
|
"directories": {
|
|
30
27
|
"lib": "lib"
|
|
31
28
|
},
|
|
32
29
|
"files": [
|
|
33
|
-
"index.js",
|
|
34
30
|
"lib",
|
|
35
31
|
"build",
|
|
36
32
|
"test/fixtures",
|
|
@@ -52,7 +48,7 @@
|
|
|
52
48
|
"bluebird": "3.7.2",
|
|
53
49
|
"lodash": "4.17.21",
|
|
54
50
|
"source-map-support": "0.5.21",
|
|
55
|
-
"xpath": "0.0.
|
|
51
|
+
"xpath": "0.0.34"
|
|
56
52
|
},
|
|
57
53
|
"peerDependencies": {
|
|
58
54
|
"appium": "^2.0.0-beta.35"
|
|
@@ -77,11 +73,15 @@
|
|
|
77
73
|
"fake-error": "./build/lib/scripts/fake-error.js",
|
|
78
74
|
"fake-success": "./build/lib/scripts/fake-success.js",
|
|
79
75
|
"fake-stdin": "./build/lib/scripts/fake-stdin.js"
|
|
76
|
+
},
|
|
77
|
+
"doctor": {
|
|
78
|
+
"checks": [
|
|
79
|
+
"./doctor/fake1.js",
|
|
80
|
+
"./doctor/fake2.js"
|
|
81
|
+
]
|
|
80
82
|
}
|
|
81
83
|
},
|
|
82
|
-
"
|
|
83
|
-
"entryPoint": "./lib/index.js"
|
|
84
|
-
},
|
|
84
|
+
"main": "./build/lib/index.js",
|
|
85
85
|
"types": "./build/lib/index.d.ts",
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "76df4d600dcb7c867c37c3d7d302dc7fcc95ae09"
|
|
87
87
|
}
|