@tvlabs/wdio-service 0.1.7 → 0.1.8
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 +8 -1
- package/cjs/index.js +34 -15
- package/cjs/service.d.ts +1 -0
- package/cjs/service.d.ts.map +1 -1
- package/cjs/types.d.ts +1 -0
- package/cjs/types.d.ts.map +1 -1
- package/esm/index.js +34 -15
- package/esm/service.d.ts +1 -0
- package/esm/service.d.ts.map +1 -1
- package/esm/types.d.ts +1 -0
- package/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/service.ts +50 -30
- package/src/types.ts +1 -0
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ run();
|
|
|
112
112
|
|
|
113
113
|
- **Type:** `string`
|
|
114
114
|
- **Required:** No
|
|
115
|
-
- **Description:**
|
|
115
|
+
- **Description:** The slug of the app on the TV Labs platform to use to upload the build. When not provided, the organization's default app is used. You may find or create an app on the [Apps page](https://tvlabs.ai/app/apps) in the TV Labs platform.
|
|
116
116
|
|
|
117
117
|
### `retries`
|
|
118
118
|
|
|
@@ -134,3 +134,10 @@ run();
|
|
|
134
134
|
- **Required:** No
|
|
135
135
|
- **Default:** `true`
|
|
136
136
|
- **Description:** Controls whether or not to attach an `x-request-id` header to each request made to the TV Labs platform.
|
|
137
|
+
|
|
138
|
+
### `continueOnError`
|
|
139
|
+
|
|
140
|
+
- **Type:** `boolean`
|
|
141
|
+
- **Required:** No
|
|
142
|
+
- **Default:** `false`
|
|
143
|
+
- **Description:** Whether to continue the session request if any step fails. When `true`, the session request will still be made with the original provided capabilities. When `false`, the service will exit with a non-zero code.
|
package/cjs/index.js
CHANGED
|
@@ -136,7 +136,7 @@ class Logger {
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
var name = "@tvlabs/wdio-service";
|
|
139
|
-
var version = "0.1.
|
|
139
|
+
var version = "0.1.8";
|
|
140
140
|
var packageJson = {
|
|
141
141
|
name: name,
|
|
142
142
|
version: version};
|
|
@@ -457,28 +457,44 @@ class TVLabsService {
|
|
|
457
457
|
this._options = _options;
|
|
458
458
|
this._capabilities = _capabilities;
|
|
459
459
|
this._config = _config;
|
|
460
|
-
this.log = new Logger('@tvlabs/wdio-
|
|
460
|
+
this.log = new Logger('@tvlabs/wdio-service', this._config.logLevel);
|
|
461
461
|
if (this.attachRequestId()) {
|
|
462
462
|
this.setupRequestId();
|
|
463
463
|
}
|
|
464
464
|
}
|
|
465
465
|
onPrepare(_config, param) {
|
|
466
|
-
|
|
467
|
-
|
|
466
|
+
try {
|
|
467
|
+
if (!Array.isArray(param)) {
|
|
468
|
+
throw new webdriverio.SevereServiceError('Multi-remote capabilities are not implemented. Contact TV Labs support if you are interested in this feature.');
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
catch (error) {
|
|
472
|
+
if (!this.continueOnError()) {
|
|
473
|
+
process.exit(1);
|
|
474
|
+
}
|
|
475
|
+
throw error;
|
|
468
476
|
}
|
|
469
477
|
}
|
|
470
478
|
async beforeSession(_config, capabilities, _specs, _cid) {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
479
|
+
try {
|
|
480
|
+
const buildPath = this.buildPath();
|
|
481
|
+
if (buildPath) {
|
|
482
|
+
const buildChannel = new BuildChannel(this.buildEndpoint(), this.reconnectRetries(), this.apiKey(), this.logLevel());
|
|
483
|
+
await buildChannel.connect();
|
|
484
|
+
capabilities['tvlabs:build'] = await buildChannel.uploadBuild(buildPath, this.appSlug());
|
|
485
|
+
await buildChannel.disconnect();
|
|
486
|
+
}
|
|
487
|
+
const sessionChannel = new SessionChannel(this.sessionEndpoint(), this.reconnectRetries(), this.apiKey(), this.logLevel());
|
|
488
|
+
await sessionChannel.connect();
|
|
489
|
+
capabilities['tvlabs:session_id'] = await sessionChannel.newSession(capabilities, this.retries());
|
|
490
|
+
await sessionChannel.disconnect();
|
|
491
|
+
}
|
|
492
|
+
catch (error) {
|
|
493
|
+
if (!this.continueOnError()) {
|
|
494
|
+
process.exit(1);
|
|
495
|
+
}
|
|
496
|
+
throw error;
|
|
497
|
+
}
|
|
482
498
|
}
|
|
483
499
|
setupRequestId() {
|
|
484
500
|
const originalTransformRequest = this._config.transformRequest;
|
|
@@ -508,6 +524,9 @@ class TVLabsService {
|
|
|
508
524
|
}
|
|
509
525
|
}
|
|
510
526
|
}
|
|
527
|
+
continueOnError() {
|
|
528
|
+
return this._options.continueOnError ?? false;
|
|
529
|
+
}
|
|
511
530
|
buildPath() {
|
|
512
531
|
return this._options.buildPath;
|
|
513
532
|
}
|
package/cjs/service.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
10
10
|
beforeSession(_config: Omit<Options.Testrunner, 'capabilities'>, capabilities: TVLabsCapabilities, _specs: string[], _cid: string): Promise<void>;
|
|
11
11
|
private setupRequestId;
|
|
12
12
|
private setRequestHeader;
|
|
13
|
+
private continueOnError;
|
|
13
14
|
private buildPath;
|
|
14
15
|
private appSlug;
|
|
15
16
|
private sessionEndpoint;
|
package/cjs/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ,CAAC,eAAe;IAIlE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,GAAG,CAAS;gBAGV,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,OAAO,EAAE,OAAO,CAAC,WAAW;IAQtC,SAAS,CACP,OAAO,EAAE,OAAO,CAAC,UAAU,EAC3B,KAAK,EAAE,YAAY,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ,CAAC,eAAe;IAIlE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,GAAG,CAAS;gBAGV,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,OAAO,EAAE,OAAO,CAAC,WAAW;IAQtC,SAAS,CACP,OAAO,EAAE,OAAO,CAAC,UAAU,EAC3B,KAAK,EAAE,YAAY,CAAC,sBAAsB;IAiBtC,aAAa,CACjB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,EACjD,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM;IA+Cd,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;CAGzB"}
|
package/cjs/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type TVLabsServiceOptions = {
|
|
|
9
9
|
app?: string;
|
|
10
10
|
reconnectRetries?: number;
|
|
11
11
|
attachRequestId?: boolean;
|
|
12
|
+
continueOnError?: boolean;
|
|
12
13
|
};
|
|
13
14
|
export type TVLabsCapabilities = Capabilities.RequestedStandaloneCapabilities & {
|
|
14
15
|
'tvlabs:session_id'?: string;
|
package/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC5B,YAAY,CAAC,+BAA+B,GAAG;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kCAAkC,CAAC,EAAE,MAAM,CAAC;QAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEJ,MAAM,MAAM,gCAAgC,GAAG,CAC7C,QAAQ,EAAE,0BAA0B,KACjC,IAAI,CAAC;AAEV,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC5B,YAAY,CAAC,+BAA+B,GAAG;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kCAAkC,CAAC,EAAE,MAAM,CAAC;QAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEJ,MAAM,MAAM,gCAAgC,GAAG,CAC7C,QAAQ,EAAE,0BAA0B,KACjC,IAAI,CAAC;AAEV,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -110,7 +110,7 @@ class Logger {
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
var name = "@tvlabs/wdio-service";
|
|
113
|
-
var version = "0.1.
|
|
113
|
+
var version = "0.1.8";
|
|
114
114
|
var packageJson = {
|
|
115
115
|
name: name,
|
|
116
116
|
version: version};
|
|
@@ -431,28 +431,44 @@ class TVLabsService {
|
|
|
431
431
|
this._options = _options;
|
|
432
432
|
this._capabilities = _capabilities;
|
|
433
433
|
this._config = _config;
|
|
434
|
-
this.log = new Logger('@tvlabs/wdio-
|
|
434
|
+
this.log = new Logger('@tvlabs/wdio-service', this._config.logLevel);
|
|
435
435
|
if (this.attachRequestId()) {
|
|
436
436
|
this.setupRequestId();
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
439
|
onPrepare(_config, param) {
|
|
440
|
-
|
|
441
|
-
|
|
440
|
+
try {
|
|
441
|
+
if (!Array.isArray(param)) {
|
|
442
|
+
throw new SevereServiceError('Multi-remote capabilities are not implemented. Contact TV Labs support if you are interested in this feature.');
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
catch (error) {
|
|
446
|
+
if (!this.continueOnError()) {
|
|
447
|
+
process.exit(1);
|
|
448
|
+
}
|
|
449
|
+
throw error;
|
|
442
450
|
}
|
|
443
451
|
}
|
|
444
452
|
async beforeSession(_config, capabilities, _specs, _cid) {
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
453
|
+
try {
|
|
454
|
+
const buildPath = this.buildPath();
|
|
455
|
+
if (buildPath) {
|
|
456
|
+
const buildChannel = new BuildChannel(this.buildEndpoint(), this.reconnectRetries(), this.apiKey(), this.logLevel());
|
|
457
|
+
await buildChannel.connect();
|
|
458
|
+
capabilities['tvlabs:build'] = await buildChannel.uploadBuild(buildPath, this.appSlug());
|
|
459
|
+
await buildChannel.disconnect();
|
|
460
|
+
}
|
|
461
|
+
const sessionChannel = new SessionChannel(this.sessionEndpoint(), this.reconnectRetries(), this.apiKey(), this.logLevel());
|
|
462
|
+
await sessionChannel.connect();
|
|
463
|
+
capabilities['tvlabs:session_id'] = await sessionChannel.newSession(capabilities, this.retries());
|
|
464
|
+
await sessionChannel.disconnect();
|
|
465
|
+
}
|
|
466
|
+
catch (error) {
|
|
467
|
+
if (!this.continueOnError()) {
|
|
468
|
+
process.exit(1);
|
|
469
|
+
}
|
|
470
|
+
throw error;
|
|
471
|
+
}
|
|
456
472
|
}
|
|
457
473
|
setupRequestId() {
|
|
458
474
|
const originalTransformRequest = this._config.transformRequest;
|
|
@@ -482,6 +498,9 @@ class TVLabsService {
|
|
|
482
498
|
}
|
|
483
499
|
}
|
|
484
500
|
}
|
|
501
|
+
continueOnError() {
|
|
502
|
+
return this._options.continueOnError ?? false;
|
|
503
|
+
}
|
|
485
504
|
buildPath() {
|
|
486
505
|
return this._options.buildPath;
|
|
487
506
|
}
|
package/esm/service.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
10
10
|
beforeSession(_config: Omit<Options.Testrunner, 'capabilities'>, capabilities: TVLabsCapabilities, _specs: string[], _cid: string): Promise<void>;
|
|
11
11
|
private setupRequestId;
|
|
12
12
|
private setRequestHeader;
|
|
13
|
+
private continueOnError;
|
|
13
14
|
private buildPath;
|
|
14
15
|
private appSlug;
|
|
15
16
|
private sessionEndpoint;
|
package/esm/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ,CAAC,eAAe;IAIlE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,GAAG,CAAS;gBAGV,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,OAAO,EAAE,OAAO,CAAC,WAAW;IAQtC,SAAS,CACP,OAAO,EAAE,OAAO,CAAC,UAAU,EAC3B,KAAK,EAAE,YAAY,CAAC,sBAAsB;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,QAAQ,CAAC,eAAe;IAIlE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,GAAG,CAAS;gBAGV,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,OAAO,EAAE,OAAO,CAAC,WAAW;IAQtC,SAAS,CACP,OAAO,EAAE,OAAO,CAAC,UAAU,EAC3B,KAAK,EAAE,YAAY,CAAC,sBAAsB;IAiBtC,aAAa,CACjB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,EACjD,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM;IA+Cd,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;CAGzB"}
|
package/esm/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type TVLabsServiceOptions = {
|
|
|
9
9
|
app?: string;
|
|
10
10
|
reconnectRetries?: number;
|
|
11
11
|
attachRequestId?: boolean;
|
|
12
|
+
continueOnError?: boolean;
|
|
12
13
|
};
|
|
13
14
|
export type TVLabsCapabilities = Capabilities.RequestedStandaloneCapabilities & {
|
|
14
15
|
'tvlabs:session_id'?: string;
|
package/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC5B,YAAY,CAAC,+BAA+B,GAAG;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kCAAkC,CAAC,EAAE,MAAM,CAAC;QAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEJ,MAAM,MAAM,gCAAgC,GAAG,CAC7C,QAAQ,EAAE,0BAA0B,KACjC,IAAI,CAAC;AAEV,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC5B,YAAY,CAAC,+BAA+B,GAAG;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kCAAkC,CAAC,EAAE,MAAM,CAAC;QAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IACF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEJ,MAAM,MAAM,gCAAgC,GAAG,CAC7C,QAAQ,EAAE,0BAA0B,KACjC,IAAI,CAAC;AAEV,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
package/package.json
CHANGED
package/src/service.ts
CHANGED
|
@@ -20,7 +20,7 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
20
20
|
private _capabilities: Capabilities.ResolvedTestrunnerCapabilities,
|
|
21
21
|
private _config: Options.WebdriverIO,
|
|
22
22
|
) {
|
|
23
|
-
this.log = new Logger('@tvlabs/wdio-
|
|
23
|
+
this.log = new Logger('@tvlabs/wdio-service', this._config.logLevel);
|
|
24
24
|
if (this.attachRequestId()) {
|
|
25
25
|
this.setupRequestId();
|
|
26
26
|
}
|
|
@@ -30,10 +30,18 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
30
30
|
_config: Options.Testrunner,
|
|
31
31
|
param: Capabilities.TestrunnerCapabilities,
|
|
32
32
|
) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
try {
|
|
34
|
+
if (!Array.isArray(param)) {
|
|
35
|
+
throw new SevereServiceError(
|
|
36
|
+
'Multi-remote capabilities are not implemented. Contact TV Labs support if you are interested in this feature.',
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
} catch (error) {
|
|
40
|
+
if (!this.continueOnError()) {
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
throw error;
|
|
37
45
|
}
|
|
38
46
|
}
|
|
39
47
|
|
|
@@ -43,41 +51,49 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
43
51
|
_specs: string[],
|
|
44
52
|
_cid: string,
|
|
45
53
|
) {
|
|
46
|
-
|
|
54
|
+
try {
|
|
55
|
+
const buildPath = this.buildPath();
|
|
56
|
+
|
|
57
|
+
if (buildPath) {
|
|
58
|
+
const buildChannel = new BuildChannel(
|
|
59
|
+
this.buildEndpoint(),
|
|
60
|
+
this.reconnectRetries(),
|
|
61
|
+
this.apiKey(),
|
|
62
|
+
this.logLevel(),
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
await buildChannel.connect();
|
|
66
|
+
|
|
67
|
+
capabilities['tvlabs:build'] = await buildChannel.uploadBuild(
|
|
68
|
+
buildPath,
|
|
69
|
+
this.appSlug(),
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
await buildChannel.disconnect();
|
|
73
|
+
}
|
|
47
74
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.buildEndpoint(),
|
|
75
|
+
const sessionChannel = new SessionChannel(
|
|
76
|
+
this.sessionEndpoint(),
|
|
51
77
|
this.reconnectRetries(),
|
|
52
78
|
this.apiKey(),
|
|
53
79
|
this.logLevel(),
|
|
54
80
|
);
|
|
55
81
|
|
|
56
|
-
await
|
|
82
|
+
await sessionChannel.connect();
|
|
57
83
|
|
|
58
|
-
capabilities['tvlabs:
|
|
59
|
-
|
|
60
|
-
this.
|
|
84
|
+
capabilities['tvlabs:session_id'] = await sessionChannel.newSession(
|
|
85
|
+
capabilities,
|
|
86
|
+
this.retries(),
|
|
61
87
|
);
|
|
62
88
|
|
|
63
|
-
await
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.reconnectRetries(),
|
|
69
|
-
this.apiKey(),
|
|
70
|
-
this.logLevel(),
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
await sessionChannel.connect();
|
|
74
|
-
|
|
75
|
-
capabilities['tvlabs:session_id'] = await sessionChannel.newSession(
|
|
76
|
-
capabilities,
|
|
77
|
-
this.retries(),
|
|
78
|
-
);
|
|
89
|
+
await sessionChannel.disconnect();
|
|
90
|
+
} catch (error) {
|
|
91
|
+
if (!this.continueOnError()) {
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
79
94
|
|
|
80
|
-
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
81
97
|
}
|
|
82
98
|
|
|
83
99
|
private setupRequestId() {
|
|
@@ -122,6 +138,10 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
122
138
|
}
|
|
123
139
|
}
|
|
124
140
|
|
|
141
|
+
private continueOnError(): boolean {
|
|
142
|
+
return this._options.continueOnError ?? false;
|
|
143
|
+
}
|
|
144
|
+
|
|
125
145
|
private buildPath(): string | undefined {
|
|
126
146
|
return this._options.buildPath;
|
|
127
147
|
}
|