@appium/driver-test-support 1.0.5 → 1.1.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.
@@ -20,12 +20,4 @@ Object.defineProperty(exports, "createSessionHelpers", { enumerable: true, get:
20
20
  Object.defineProperty(exports, "driverE2ETestSuite", { enumerable: true, get: function () { return e2e_suite_1.driverE2ETestSuite; } });
21
21
  __exportStar(require("./unit-suite"), exports);
22
22
  __exportStar(require("./helpers"), exports);
23
- /**
24
- * @typedef {import('@appium/types').DriverClass} DriverClass
25
- * @typedef {import('@appium/types').BaseNSCapabilities} BaseNSCapabilities
26
- */
27
- /**
28
- * @template {import('@appium/types').Constraints} C
29
- * @typedef {import('@appium/types').W3CCapabilities<C>} W3CCapabilities
30
- */
31
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAqE;AAA7D,iHAAA,oBAAoB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAChD,+CAA6B;AAC7B,4CAA0B;AAE1B;;;GAGG;AAEH;;;GAGG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAqE;AAA7D,iHAAA,oBAAoB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAChD,+CAA6B;AAC7B,4CAA0B"}
@@ -0,0 +1,26 @@
1
+ import type { AxiosResponse, RawAxiosRequestConfig } from 'axios';
2
+ import type { Capabilities, Constraints, SingularSessionData, W3CCapabilities } from '@appium/types';
3
+ import type { RequireAtLeastOne } from 'type-fest';
4
+ export interface NewSessionData<C extends Constraints = Constraints> {
5
+ capabilities: RequireAtLeastOne<W3CCapabilities<C>, 'firstMatch' | 'alwaysMatch'>;
6
+ }
7
+ export interface NewSessionResponse<C extends Constraints = Constraints> {
8
+ sessionId: string;
9
+ capabilities: Capabilities<C>;
10
+ }
11
+ export interface SessionHelpers<CommandData = unknown, ResponseData = any> {
12
+ newSessionURL: string;
13
+ createAppiumTestURL: (session: string, pathname: string) => string;
14
+ postCommand: (sessionId: string, cmdName: string, data?: CommandData, config?: RawAxiosRequestConfig) => Promise<ResponseData>;
15
+ getCommand: (sessionIdOrCmdName: string, cmdNameOrConfig: string | RawAxiosRequestConfig, config?: RawAxiosRequestConfig) => Promise<ResponseData>;
16
+ startSession: (data: NewSessionData, config?: RawAxiosRequestConfig) => Promise<NewSessionResponse>;
17
+ endSession: (sessionId: string) => Promise<AxiosResponse<{
18
+ value: {
19
+ error?: string;
20
+ } | null;
21
+ }, {
22
+ validateStatus: null;
23
+ }>>;
24
+ getSession: (sessionId: string) => Promise<SingularSessionData>;
25
+ }
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AACnG,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACjE,YAAY,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc,CAAC,WAAW,GAAG,OAAO,EAAE,YAAY,GAAG,GAAG;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACnE,WAAW,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,qBAAqB,KAC3B,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,UAAU,EAAE,CACV,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,MAAM,GAAG,qBAAqB,EAC/C,MAAM,CAAC,EAAE,qBAAqB,KAC3B,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,YAAY,EAAE,CACZ,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,UAAU,EAAE,CACV,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,aAAa,CAAC;QAAC,KAAK,EAAE;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAC,GAAG,IAAI,CAAA;KAAC,EAAE;QAAC,cAAc,EAAE,IAAI,CAAA;KAAC,CAAC,CAAC,CAAC;IACtF,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjE"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":""}
@@ -1,13 +1,6 @@
1
+ import type { Constraints, Driver, DriverClass, NSDriverCaps } from '@appium/types';
1
2
  /**
2
3
  * Creates unit test suites for a driver.
3
- * @template {Constraints} C
4
- * @param {DriverClass<C>} DriverClass
5
- * @param {import('@appium/types').NSDriverCaps<C>} [defaultCaps]
6
4
  */
7
- export function driverUnitTestSuite<C extends Constraints>(DriverClass: DriverClass<C>, defaultCaps?: import("@appium/types").NSDriverCaps<C>): void;
8
- export type BaseNSCapabilities = import("@appium/types").BaseNSCapabilities;
9
- export type Constraints = import("@appium/types").Constraints;
10
- export type DriverClass<C extends Constraints> = import("@appium/types").DriverClass<Driver<C>>;
11
- export type Driver<C extends Constraints> = import("@appium/types").Driver<C>;
12
- export type W3CCapabilities<C extends Constraints> = import("@appium/types").W3CCapabilities<C>;
5
+ export declare function driverUnitTestSuite<C extends Constraints>(DriverClass: DriverClass<Driver<C>>, defaultCaps?: NSDriverCaps<C>): void;
13
6
  //# sourceMappingURL=unit-suite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-suite.d.ts","sourceRoot":"","sources":["../../lib/unit-suite.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AAEH,oCAL2B,CAAC,SAAd,WAAY,eACf,WAAW,CAAC,CAAC,CAAC,gBACd,OAAO,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,QAukBjD;iCAGY,OAAO,eAAe,EAAE,kBAAkB;0BAC1C,OAAO,eAAe,EAAE,WAAW;wBAIrB,CAAC,SAAd,WAAY,IACb,OAAO,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;mBAIhC,CAAC,SAAd,WAAY,IACb,OAAO,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;4BAInB,CAAC,SAAd,WAAY,IACb,OAAO,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"unit-suite.d.ts","sourceRoot":"","sources":["../../lib/unit-suite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,EAEb,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EACvD,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACnC,WAAW,GAAE,YAAY,CAAC,CAAC,CAAyB,GACnD,IAAI,CAkjBN"}
@@ -5,35 +5,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.driverUnitTestSuite = driverUnitTestSuite;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
- const bluebird_1 = __importDefault(require("bluebird"));
9
- // eslint-disable-next-line import/named
8
+ const asyncbox_1 = require("asyncbox");
10
9
  const sinon_1 = require("sinon");
11
- // wrap these tests in a function so we can export the tests and re-use them
12
- // for actual driver implementations
13
10
  /**
14
11
  * Creates unit test suites for a driver.
15
- * @template {Constraints} C
16
- * @param {DriverClass<C>} DriverClass
17
- * @param {import('@appium/types').NSDriverCaps<C>} [defaultCaps]
18
12
  */
19
- function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appium/types').NSDriverCaps<C>} */ ({})) {
20
- // to display the driver under test in report
13
+ function driverUnitTestSuite(DriverClass, defaultCaps = {}) {
21
14
  const className = DriverClass.name ?? '(unknown driver)';
22
15
  describe(`BaseDriver unit suite (as ${className})`, function () {
23
- /** @type {InstanceType<typeof DriverClass>} */
24
16
  let d;
25
- /** @type {import('@appium/types').W3CDriverCaps<C>} */
26
17
  let w3cCaps;
27
- /** @type {import('sinon').SinonSandbox} */
28
18
  let sandbox;
29
19
  let expect;
30
- let should;
31
20
  before(async function () {
32
21
  const chai = await import('chai');
33
22
  const chaiAsPromised = await import('chai-as-promised');
34
23
  chai.use(chaiAsPromised.default);
35
24
  expect = chai.expect;
36
- should = chai.should();
25
+ chai.should(); // for client code that may use should style
37
26
  });
38
27
  beforeEach(function () {
39
28
  sandbox = (0, sinon_1.createSandbox)();
@@ -59,12 +48,12 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
59
48
  });
60
49
  });
61
50
  it('should return an empty status object', async function () {
62
- let status = await d.getStatus();
63
- status.should.eql({});
51
+ const status = await d.getStatus();
52
+ expect(status).to.eql({});
64
53
  });
65
54
  it('should return a sessionId from createSession', async function () {
66
- let [sessId] = await d.createSession(w3cCaps);
67
- should.exist(sessId);
55
+ const [sessId] = await d.createSession(w3cCaps);
56
+ expect(sessId).to.exist;
68
57
  expect(sessId).to.be.a('string');
69
58
  expect(sessId.length).to.be.above(5);
70
59
  });
@@ -73,25 +62,24 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
73
62
  await expect(d.createSession(lodash_1.default.cloneDeep(w3cCaps))).to.be.rejectedWith('session');
74
63
  });
75
64
  it('should be able to delete a session', async function () {
76
- let sessionId1 = await d.createSession(lodash_1.default.cloneDeep(w3cCaps));
65
+ const sessionId1 = await d.createSession(lodash_1.default.cloneDeep(w3cCaps));
77
66
  await d.deleteSession();
78
- should.equal(d.sessionId, null);
79
- let sessionId2 = await d.createSession(lodash_1.default.cloneDeep(w3cCaps));
67
+ expect(d.sessionId).to.equal(null);
68
+ const sessionId2 = await d.createSession(lodash_1.default.cloneDeep(w3cCaps));
80
69
  expect(sessionId1).to.not.eql(sessionId2);
81
70
  });
82
71
  it('should get the current session', async function () {
83
- let [, caps] = await d.createSession(w3cCaps);
72
+ const [, caps] = await d.createSession(w3cCaps);
84
73
  expect(caps).to.equal(await d.getSession());
85
74
  });
86
75
  it('should fulfill an unexpected driver quit promise', async function () {
87
- // make a command that will wait a bit so we can crash while it's running
88
76
  sandbox.stub(d, 'getStatus').callsFake(async () => {
89
- await bluebird_1.default.delay(1000);
77
+ await (0, asyncbox_1.sleep)(1000);
90
78
  return 'good status';
91
79
  });
92
- let cmdPromise = d.executeCommand('getStatus');
93
- await bluebird_1.default.delay(10);
94
- const p = new bluebird_1.default((resolve, reject) => {
80
+ const cmdPromise = d.executeCommand('getStatus');
81
+ await (0, asyncbox_1.sleep)(10);
82
+ const p = new Promise((resolve, reject) => {
95
83
  setTimeout(() => reject(new Error('onUnexpectedShutdown event is expected to be fired within 5 seconds timeout')), 5000);
96
84
  d.onUnexpectedShutdown(resolve);
97
85
  });
@@ -100,13 +88,12 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
100
88
  await p;
101
89
  });
102
90
  it('should not allow commands in middle of unexpected shutdown', async function () {
103
- // make a command that will wait a bit so we can crash while it's running
104
91
  sandbox.stub(d, 'deleteSession').callsFake(async function () {
105
- await bluebird_1.default.delay(100);
92
+ await (0, asyncbox_1.sleep)(100);
106
93
  DriverClass.prototype.deleteSession.call(this);
107
94
  });
108
95
  await d.createSession(w3cCaps);
109
- const p = new bluebird_1.default((resolve, reject) => {
96
+ const p = new Promise((resolve, reject) => {
110
97
  setTimeout(() => reject(new Error('onUnexpectedShutdown event is expected to be fired within 5 seconds timeout')), 5000);
111
98
  d.onUnexpectedShutdown(resolve);
112
99
  });
@@ -115,25 +102,23 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
115
102
  await expect(d.executeCommand('getSession')).to.be.rejectedWith(/shut down/);
116
103
  });
117
104
  it('should allow new commands after done shutting down', async function () {
118
- // make a command that will wait a bit so we can crash while it's running
119
105
  sandbox.stub(d, 'deleteSession').callsFake(async function () {
120
- await bluebird_1.default.delay(100);
106
+ await (0, asyncbox_1.sleep)(100);
121
107
  DriverClass.prototype.deleteSession.call(this);
122
108
  });
123
109
  await d.createSession(lodash_1.default.cloneDeep(w3cCaps));
124
- const p = new bluebird_1.default((resolve, reject) => {
110
+ const p = new Promise((resolve, reject) => {
125
111
  setTimeout(() => reject(new Error('onUnexpectedShutdown event is expected to be fired within 5 seconds timeout')), 5000);
126
112
  d.onUnexpectedShutdown(resolve);
127
113
  });
128
114
  d.startUnexpectedShutdown(new Error('We crashed'));
129
115
  await p;
130
116
  await expect(d.executeCommand('getSession')).to.be.rejectedWith(/shut down/);
131
- await bluebird_1.default.delay(500);
117
+ await (0, asyncbox_1.sleep)(500);
132
118
  await d.executeCommand('createSession', null, null, lodash_1.default.cloneDeep(w3cCaps));
133
119
  await d.deleteSession();
134
120
  });
135
121
  it('should distinguish between W3C and JSONWP session', async function () {
136
- // Test W3C (leave first 2 args null because those are the JSONWP args)
137
122
  await d.executeCommand('createSession', null, null, {
138
123
  alwaysMatch: {
139
124
  ...defaultCaps,
@@ -154,21 +139,20 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
154
139
  });
155
140
  });
156
141
  it('should have a method to get driver for a session', async function () {
157
- let [sessId] = await d.createSession(w3cCaps);
142
+ const [sessId] = await d.createSession(w3cCaps);
158
143
  expect(d.driverForSession(sessId)).to.eql(d);
159
144
  });
160
145
  describe('command queue', function () {
161
- /** @type {InstanceType<DriverClass<Constraints>>} */
162
146
  let d;
163
- let waitMs = 10;
147
+ const waitMs = 10;
164
148
  beforeEach(function () {
165
149
  d = new DriverClass();
166
150
  sandbox.stub(d, 'getStatus').callsFake(async () => {
167
- await bluebird_1.default.delay(waitMs);
151
+ await (0, asyncbox_1.sleep)(waitMs);
168
152
  return Date.now();
169
153
  });
170
154
  sandbox.stub(d, 'deleteSession').callsFake(async () => {
171
- await bluebird_1.default.delay(waitMs);
155
+ await (0, asyncbox_1.sleep)(waitMs);
172
156
  throw new Error('multipass');
173
157
  });
174
158
  });
@@ -176,12 +160,12 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
176
160
  await d.clearNewCommandTimeout();
177
161
  });
178
162
  it('should queue commands and.executeCommand/respond in the order received', async function () {
179
- let numCmds = 10;
180
- let cmds = [];
163
+ const numCmds = 10;
164
+ const cmds = [];
181
165
  for (let i = 0; i < numCmds; i++) {
182
166
  cmds.push(d.executeCommand('getStatus'));
183
167
  }
184
- let results = await bluebird_1.default.all(cmds);
168
+ const results = await Promise.all(cmds);
185
169
  for (let i = 1; i < numCmds; i++) {
186
170
  if (results[i] <= results[i - 1]) {
187
171
  throw new Error('Got result out of order');
@@ -189,8 +173,8 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
189
173
  }
190
174
  });
191
175
  it('should handle errors correctly when queuing', async function () {
192
- let numCmds = 10;
193
- let cmds = [];
176
+ const numCmds = 10;
177
+ const cmds = [];
194
178
  for (let i = 0; i < numCmds; i++) {
195
179
  if (i === 5) {
196
180
  cmds.push(d.executeCommand('deleteSession'));
@@ -199,32 +183,40 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
199
183
  cmds.push(d.executeCommand('getStatus'));
200
184
  }
201
185
  }
202
- let results = /** @type {PromiseFulfilledResult<any>[]} */ (await Promise.allSettled(cmds));
186
+ const results = await Promise.allSettled(cmds);
203
187
  for (let i = 1; i < 5; i++) {
204
- if (results[i].value <= results[i - 1].value) {
205
- throw new Error('Got result out of order');
188
+ const r = results[i];
189
+ const rPrev = results[i - 1];
190
+ if (r.status === 'fulfilled' && rPrev.status === 'fulfilled') {
191
+ if (r.value <= rPrev.value) {
192
+ throw new Error('Got result out of order');
193
+ }
206
194
  }
207
195
  }
208
- /** @type {PromiseRejectedResult} */ (
209
- /** @type {unknown} */ (results[5])).reason.message.should.contain('multipass');
196
+ const rejected = results[5];
197
+ expect(rejected.reason.message).to.contain('multipass');
210
198
  for (let i = 7; i < numCmds; i++) {
211
- if (results[i].value <= results[i - 1].value) {
212
- throw new Error('Got result out of order');
199
+ const r = results[i];
200
+ const rPrev = results[i - 1];
201
+ if (r.status === 'fulfilled' && rPrev.status === 'fulfilled') {
202
+ if (r.value <= rPrev.value) {
203
+ throw new Error('Got result out of order');
204
+ }
213
205
  }
214
206
  }
215
207
  });
216
208
  it('should not care if queue empties for a bit', async function () {
217
- let numCmds = 10;
209
+ const numCmds = 10;
218
210
  let cmds = [];
219
211
  for (let i = 0; i < numCmds; i++) {
220
212
  cmds.push(d.executeCommand('getStatus'));
221
213
  }
222
- let results = await bluebird_1.default.all(cmds);
214
+ let results = await Promise.all(cmds);
223
215
  cmds = [];
224
216
  for (let i = 0; i < numCmds; i++) {
225
217
  cmds.push(d.executeCommand('getStatus'));
226
218
  }
227
- results = await bluebird_1.default.all(cmds);
219
+ results = await Promise.all(cmds);
228
220
  for (let i = 1; i < numCmds; i++) {
229
221
  if (results[i] <= results[i - 1]) {
230
222
  throw new Error('Got result out of order');
@@ -332,26 +324,22 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
332
324
  });
333
325
  it('should throw an error when sessionId is wrong', function () {
334
326
  expect(() => {
335
- d.canProxy();
327
+ d.canProxy(undefined);
336
328
  }).to.throw;
337
329
  });
338
330
  });
339
331
  describe('#proxyRouteIsAvoided', function () {
340
332
  it('should validate form of avoidance list', function () {
341
333
  const avoidStub = sandbox.stub(d, 'getProxyAvoidList');
342
- // @ts-expect-error
343
334
  avoidStub.returns([['POST', /\/foo/], ['GET']]);
344
335
  expect(() => {
345
- // @ts-expect-error
346
336
  d.proxyRouteIsAvoided();
347
337
  }).to.throw;
348
338
  avoidStub.returns([
349
339
  ['POST', /\/foo/],
350
- // @ts-expect-error
351
340
  ['GET', /^foo/, 'bar'],
352
341
  ]);
353
342
  expect(() => {
354
- // @ts-expect-error
355
343
  d.proxyRouteIsAvoided();
356
344
  }).to.throw;
357
345
  });
@@ -359,11 +347,9 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
359
347
  const avoidStub = sandbox.stub(d, 'getProxyAvoidList');
360
348
  avoidStub.returns([
361
349
  ['POST', /^foo/],
362
- // @ts-expect-error
363
350
  ['BAZETE', /^bar/],
364
351
  ]);
365
352
  expect(() => {
366
- // @ts-expect-error
367
353
  d.proxyRouteIsAvoided();
368
354
  }).to.throw;
369
355
  });
@@ -371,11 +357,9 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
371
357
  const avoidStub = sandbox.stub(d, 'getProxyAvoidList');
372
358
  avoidStub.returns([
373
359
  ['POST', /^foo/],
374
- // @ts-expect-error
375
360
  ['GET', '/bar'],
376
361
  ]);
377
362
  expect(() => {
378
- // @ts-expect-error
379
363
  d.proxyRouteIsAvoided();
380
364
  }).to.throw;
381
365
  });
@@ -409,15 +393,15 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
409
393
  });
410
394
  describe('#eventHistory', function () {
411
395
  it('should have an eventHistory property', function () {
412
- should.exist(d.eventHistory);
413
- should.exist(d.eventHistory.commands);
396
+ expect(d.eventHistory).to.exist;
397
+ expect(d.eventHistory.commands).to.exist;
414
398
  });
415
399
  it('should have a session start timing after session start', function () {
416
- let { newSessionRequested, newSessionStarted } = d.eventHistory;
417
- newSessionRequested.should.have.length(1);
418
- newSessionStarted.should.have.length(1);
419
- newSessionRequested[0].should.be.a('number');
420
- newSessionStarted[0].should.be.a('number');
400
+ const { newSessionRequested, newSessionStarted } = d.eventHistory;
401
+ expect(newSessionRequested).to.have.length(1);
402
+ expect(newSessionStarted).to.have.length(1);
403
+ expect(newSessionRequested[0]).to.be.a('number');
404
+ expect(newSessionStarted[0]).to.be.a('number');
421
405
  expect(newSessionRequested[0] >= beforeStartTime).to.be.true;
422
406
  expect(newSessionStarted[0] >= newSessionRequested[0]).to.be.true;
423
407
  });
@@ -440,11 +424,9 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
440
424
  d.logEvent('commands');
441
425
  }).to.throw();
442
426
  expect(() => {
443
- // @ts-expect-error - bad type
444
427
  d.logEvent(1);
445
428
  }).to.throw();
446
429
  expect(() => {
447
- // @ts-expect-error - bad type
448
430
  d.logEvent({});
449
431
  }).to.throw();
450
432
  });
@@ -459,11 +441,11 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
459
441
  describe('getSession decoration', function () {
460
442
  it('should decorate getSession response if opt-in cap is provided', async function () {
461
443
  let res = await d.getSession();
462
- should.not.exist(res.events);
444
+ expect(res.events).to.not.exist;
463
445
  lodash_1.default.set(d, 'caps.eventTimings', true);
464
446
  res = await d.getSession();
465
- should.exist(res.events);
466
- should.exist(res.events?.newSessionRequested);
447
+ expect(res.events).to.exist;
448
+ expect(res.events?.newSessionRequested).to.exist;
467
449
  expect(res.events?.newSessionRequested[0]).to.be.a('number');
468
450
  });
469
451
  });
@@ -475,6 +457,7 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
475
457
  before(async function () {
476
458
  const chai = await import('chai');
477
459
  expect = chai.expect;
460
+ chai.should(); // for client code that may use should style
478
461
  });
479
462
  beforeEach(function () {
480
463
  d = new DriverClass();
@@ -521,20 +504,4 @@ function driverUnitTestSuite(DriverClass, defaultCaps = /** @type {import('@appi
521
504
  });
522
505
  });
523
506
  }
524
- /**
525
- * @typedef {import('@appium/types').BaseNSCapabilities} BaseNSCapabilities
526
- * @typedef {import('@appium/types').Constraints} Constraints
527
- */
528
- /**
529
- * @template {Constraints} C
530
- * @typedef {import('@appium/types').DriverClass<Driver<C>>} DriverClass
531
- */
532
- /**
533
- * @template {Constraints} C
534
- * @typedef {import('@appium/types').Driver<C>} Driver
535
- */
536
- /**
537
- * @template {Constraints} C
538
- * @typedef {import('@appium/types').W3CCapabilities<C>} W3CCapabilities
539
- */
540
507
  //# sourceMappingURL=unit-suite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-suite.js","sourceRoot":"","sources":["../../lib/unit-suite.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unit-suite.js","sourceRoot":"","sources":["../../lib/unit-suite.ts"],"names":[],"mappings":"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"}