@appium/fake-plugin 3.1.56 → 3.2.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.
@@ -1,3 +1,3 @@
1
1
  export default log;
2
- declare const log: import("../../types/build/lib").AppiumLogger;
2
+ declare const log: import("@appium/types").AppiumLogger;
3
3
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,gEAA2C"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,wDAA2C"}
@@ -21,6 +21,31 @@ export class FakePlugin extends BasePlugin {
21
21
  };
22
22
  };
23
23
  };
24
+ static newBidiCommands: {
25
+ readonly 'appium:fake': {
26
+ readonly getPluginThing: {
27
+ readonly command: "getPluginThing";
28
+ };
29
+ readonly setPluginThing: {
30
+ readonly command: "setPluginThing";
31
+ readonly params: {
32
+ readonly required: readonly ["thing"];
33
+ };
34
+ };
35
+ readonly doSomeMath: {
36
+ readonly command: "doSomeMath";
37
+ readonly params: {
38
+ readonly required: readonly ["num1", "num2"];
39
+ };
40
+ };
41
+ readonly doSomeMath2: {
42
+ readonly command: "doSomeMath2";
43
+ readonly params: {
44
+ readonly required: readonly ["num1", "num2"];
45
+ };
46
+ };
47
+ };
48
+ };
24
49
  /** @type {string?} */
25
50
  static _unexpectedData: string | null;
26
51
  static executeMethodMap: {
@@ -47,7 +72,22 @@ export class FakePlugin extends BasePlugin {
47
72
  * @readonly
48
73
  */
49
74
  readonly fakeThing: string;
75
+ /**
76
+ * @type {any}
77
+ */
78
+ pluginThing: any;
79
+ _clockRunning: boolean;
80
+ startClock(): Promise<void>;
81
+ doSomeMath(next: any, driver: any, num1: any, num2: any): Promise<any>;
82
+ doSomeMath2(next: any, driver: any, num1: any, num2: any): Promise<number>;
50
83
  getFakeThing(): Promise<string>;
84
+ getPluginThing(): Promise<any>;
85
+ /**
86
+ * @param {() => Promise<any>} next
87
+ * @param {import('@appium/types').Driver} driver
88
+ * @param {any} thing
89
+ */
90
+ setPluginThing(next: () => Promise<any>, driver: import("@appium/types").Driver, thing: any): Promise<void>;
51
91
  plugMeIn(next: any, driver: any, socket: string): Promise<string>;
52
92
  getFakePluginArgs(): Promise<Record<string, unknown>>;
53
93
  getPageSource(next: any, driver: any, ...args: any[]): Promise<string>;
@@ -57,6 +97,7 @@ export class FakePlugin extends BasePlugin {
57
97
  getWindowHandle(next: any): Promise<string>;
58
98
  onUnexpectedShutdown(driver: any, cause: any): Promise<void>;
59
99
  execute(next: any, driver: any, script: any, args: any): Promise<unknown>;
100
+ deleteSession(next: any): Promise<any>;
60
101
  }
61
102
  import { BasePlugin } from 'appium/plugin';
62
103
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";AAMA;IAgBE;;;;;;;;;;;;;;;;;;;;MAYG;IAEH,sBAAsB;IACtB,wBADW,MAAM,OAAC,CACY;IAE9B;;;;;;;;;;MAWG;IAEH,2CAEC;IAED,gDAGC;IAGD,mFAMC;IAvDD;;;OAGG;IACH,kBAHW,MAAM,WACN,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,EAKhC;IAbD;;;OAGG;IACH,oBAHU,MAAM,CAGN;IA2DV,gCAGC;IAED,yCAAwC,MAAM,mBAG7C;IAED,sDAGC;IAED,uEAGC;IAED,kEAMC;IAED,yDAGC;IAED,0EAIC;IAED,4CAGC;IAGD,6DAEC;IAED,0EAEC;CACF;2BAvHwB,eAAe"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";AAMA;IAwBE;;;;;;;;;;;;;;;;;;;;MAYG;IAEH;;;;;;;;;;;;;;;;;;;;;;;;MAwBG;IAEH,sBAAsB;IACtB,wBADW,MAAM,OAAC,CACY;IAE9B;;;;;;;;;;MAWG;IAEH,2CAEC;IAED,gDAGC;IAGD,mFAMC;IAlFD;;;OAGG;IACH,kBAHW,MAAM,WACN,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,EAMhC;IArBD;;;OAGG;IACH,oBAHU,MAAM,CAGN;IAEV;;OAEG;IACH,aAFU,GAAG,CAEM;IAEnB,uBAAqB;IAsFrB,4BAQC;IAED,uEAGC;IAED,2EAIC;IAED,gCAGC;IAED,+BAMC;IAED;;;;OAIG;IACH,qBAJW,MAAM,OAAO,CAAC,GAAG,CAAC,UAClB,OAAO,eAAe,EAAE,MAAM,SAC9B,GAAG,iBAIb;IAED,yCAAwC,MAAM,mBAG7C;IAED,sDAGC;IAED,uEAGC;IAED,kEAMC;IAED,yDAGC;IAED,0EAIC;IAED,4CAGC;IAGD,6DAGC;IAED,0EAEC;IAED,uCAGC;CACF;2BArMwB,eAAe"}
@@ -14,7 +14,13 @@ class FakePlugin extends plugin_1.BasePlugin {
14
14
  */
15
15
  constructor(name, cliArgs) {
16
16
  super(name, cliArgs);
17
+ /**
18
+ * @type {any}
19
+ */
20
+ this.pluginThing = null;
21
+ this._clockRunning = true;
17
22
  this.fakeThing = 'PLUGIN_FAKE_THING';
23
+ this.startClock();
18
24
  }
19
25
  static fakeRoute(req, res) {
20
26
  res.send(JSON.stringify({ fake: 'fakeResponse' }));
@@ -30,10 +36,43 @@ class FakePlugin extends plugin_1.BasePlugin {
30
36
  res.send(JSON.stringify(cliArgs));
31
37
  });
32
38
  }
39
+ async startClock() {
40
+ while (this._clockRunning) {
41
+ await bluebird_1.default.delay(250);
42
+ this.eventEmitter.emit('bidiEvent', {
43
+ method: 'appium:clock.currentTime',
44
+ params: { time: Date.now() },
45
+ });
46
+ }
47
+ }
48
+ async doSomeMath(next, driver, num1, num2) {
49
+ const sum = await next(); // call driver's 'doSomeMath' which sums num1 and num2
50
+ return (num1 * num2) + sum;
51
+ }
52
+ async doSomeMath2(next, driver, num1, num2) {
53
+ // ignore next & driver in this method
54
+ await bluebird_1.default.delay(1);
55
+ return num1 * num2;
56
+ }
33
57
  async getFakeThing() {
34
58
  await bluebird_1.default.delay(1);
35
59
  return this.fakeThing;
36
60
  }
61
+ async getPluginThing() {
62
+ this.eventEmitter.emit('bidiEvent', {
63
+ method: 'appium:fake.pluginThingRetrieved',
64
+ params: {},
65
+ });
66
+ return this.pluginThing;
67
+ }
68
+ /**
69
+ * @param {() => Promise<any>} next
70
+ * @param {import('@appium/types').Driver} driver
71
+ * @param {any} thing
72
+ */
73
+ async setPluginThing(next, driver, thing) {
74
+ this.pluginThing = thing;
75
+ }
37
76
  async plugMeIn(next, driver, /** @type {string} */ socket) {
38
77
  await bluebird_1.default.delay(1);
39
78
  return `Plugged in to ${socket}`;
@@ -67,11 +106,16 @@ class FakePlugin extends plugin_1.BasePlugin {
67
106
  return `<<${handle}>>`;
68
107
  }
69
108
  async onUnexpectedShutdown(driver, cause) {
109
+ this._clockRunning = false;
70
110
  FakePlugin._unexpectedData = `Session ended because ${cause}`;
71
111
  }
72
112
  async execute(next, driver, script, args) {
73
113
  return await this.executeMethod(next, driver, script, args);
74
114
  }
115
+ async deleteSession(next) {
116
+ this._clockRunning = false;
117
+ return await next();
118
+ }
75
119
  }
76
120
  exports.FakePlugin = FakePlugin;
77
121
  FakePlugin.newMethodMap = ({
@@ -87,6 +131,31 @@ FakePlugin.newMethodMap = ({
87
131
  GET: { command: 'getFakePluginArgs', neverProxy: true },
88
132
  },
89
133
  });
134
+ FakePlugin.newBidiCommands = ({
135
+ 'appium:fake': {
136
+ getPluginThing: {
137
+ command: 'getPluginThing',
138
+ },
139
+ setPluginThing: {
140
+ command: 'setPluginThing',
141
+ params: {
142
+ required: ['thing'],
143
+ },
144
+ },
145
+ doSomeMath: {
146
+ command: 'doSomeMath',
147
+ params: {
148
+ required: ['num1', 'num2'],
149
+ },
150
+ },
151
+ doSomeMath2: {
152
+ command: 'doSomeMath2',
153
+ params: {
154
+ required: ['num1', 'num2'],
155
+ },
156
+ },
157
+ }
158
+ });
90
159
  /** @type {string?} */
91
160
  FakePlugin._unexpectedData = null;
92
161
  FakePlugin.executeMethodMap = ({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"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"}
package/lib/plugin.js CHANGED
@@ -11,6 +11,13 @@ class FakePlugin extends BasePlugin {
11
11
  */
12
12
  fakeThing;
13
13
 
14
+ /**
15
+ * @type {any}
16
+ */
17
+ pluginThing = null;
18
+
19
+ _clockRunning = true;
20
+
14
21
  /**
15
22
  * @param {string} name
16
23
  * @param {Record<string,unknown>} cliArgs
@@ -18,6 +25,7 @@ class FakePlugin extends BasePlugin {
18
25
  constructor(name, cliArgs) {
19
26
  super(name, cliArgs);
20
27
  this.fakeThing = 'PLUGIN_FAKE_THING';
28
+ this.startClock();
21
29
  }
22
30
 
23
31
  static newMethodMap = /** @type {const} */ ({
@@ -34,6 +42,32 @@ class FakePlugin extends BasePlugin {
34
42
  },
35
43
  });
36
44
 
45
+ static newBidiCommands = /** @type {const} */({
46
+ 'appium:fake': {
47
+ getPluginThing: {
48
+ command: 'getPluginThing',
49
+ },
50
+ setPluginThing: {
51
+ command: 'setPluginThing',
52
+ params: {
53
+ required: ['thing'],
54
+ },
55
+ },
56
+ doSomeMath: {
57
+ command: 'doSomeMath',
58
+ params: {
59
+ required: ['num1', 'num2'],
60
+ },
61
+ },
62
+ doSomeMath2: {
63
+ command: 'doSomeMath2',
64
+ params: {
65
+ required: ['num1', 'num2'],
66
+ },
67
+ },
68
+ }
69
+ });
70
+
37
71
  /** @type {string?} */
38
72
  static _unexpectedData = null;
39
73
 
@@ -68,11 +102,49 @@ class FakePlugin extends BasePlugin {
68
102
  });
69
103
  }
70
104
 
105
+ async startClock() {
106
+ while (this._clockRunning) {
107
+ await B.delay(250);
108
+ this.eventEmitter.emit('bidiEvent', {
109
+ method: 'appium:clock.currentTime',
110
+ params: {time: Date.now()},
111
+ });
112
+ }
113
+ }
114
+
115
+ async doSomeMath(next, driver, num1, num2) {
116
+ const sum = await next(); // call driver's 'doSomeMath' which sums num1 and num2
117
+ return (num1 * num2) + sum;
118
+ }
119
+
120
+ async doSomeMath2(next, driver, num1, num2) {
121
+ // ignore next & driver in this method
122
+ await B.delay(1);
123
+ return num1 * num2;
124
+ }
125
+
71
126
  async getFakeThing() {
72
127
  await B.delay(1);
73
128
  return this.fakeThing;
74
129
  }
75
130
 
131
+ async getPluginThing() {
132
+ this.eventEmitter.emit('bidiEvent', {
133
+ method: 'appium:fake.pluginThingRetrieved',
134
+ params: {},
135
+ });
136
+ return this.pluginThing;
137
+ }
138
+
139
+ /**
140
+ * @param {() => Promise<any>} next
141
+ * @param {import('@appium/types').Driver} driver
142
+ * @param {any} thing
143
+ */
144
+ async setPluginThing(next, driver, thing) {
145
+ this.pluginThing = thing;
146
+ }
147
+
76
148
  async plugMeIn(next, driver, /** @type {string} */ socket) {
77
149
  await B.delay(1);
78
150
  return `Plugged in to ${socket}`;
@@ -114,12 +186,18 @@ class FakePlugin extends BasePlugin {
114
186
 
115
187
 
116
188
  async onUnexpectedShutdown(driver, cause) {
189
+ this._clockRunning = false;
117
190
  FakePlugin._unexpectedData = `Session ended because ${cause}`;
118
191
  }
119
192
 
120
193
  async execute(next, driver, script, args) {
121
194
  return await this.executeMethod(next, driver, script, args);
122
195
  }
196
+
197
+ async deleteSession(next) {
198
+ this._clockRunning = false;
199
+ return await next();
200
+ }
123
201
  }
124
202
 
125
203
  export {FakePlugin};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/fake-plugin",
3
- "version": "3.1.56",
3
+ "version": "3.2.0",
4
4
  "description": "A fake Appium 2.0 plugin",
5
5
  "keywords": [
6
6
  "automation",
@@ -39,8 +39,8 @@
39
39
  "test:unit": "mocha \"./test/unit/**/*.spec.js\""
40
40
  },
41
41
  "dependencies": {
42
- "@appium/base-plugin": "^2.2.52",
43
- "@appium/support": "^6.0.2",
42
+ "@appium/base-plugin": "^2.3.0",
43
+ "@appium/support": "^6.0.3",
44
44
  "@types/bluebird": "3.5.42",
45
45
  "bluebird": "3.7.2",
46
46
  "lodash": "4.17.21",
@@ -64,7 +64,7 @@
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "gitHead": "3467f32c8e3618db05b6b210544cfdc6a57bb73c",
67
+ "gitHead": "a7ce83e169e101ae497bab11204a73703fd54e99",
68
68
  "tags": [
69
69
  "appium"
70
70
  ]