@tvlabs/wdio-service 0.1.8 → 0.1.9
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 +37 -1
- package/cjs/index.js +10 -2
- package/cjs/service.d.ts +3 -0
- package/cjs/service.d.ts.map +1 -1
- package/esm/index.js +10 -2
- package/esm/service.d.ts +3 -0
- package/esm/service.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/service.ts +12 -1
package/README.md
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
## Introduction
|
|
12
12
|
|
|
13
|
+
[](https://www.npmjs.com/package/@tvlabs/wdio-service)
|
|
14
|
+
|
|
13
15
|
The `@tvlabs/wdio-service` package uses a websocket to connect to the TV Labs platform before an Appium session begins, logging events relating to build upload and session creation as they occur. This offloads the responsibility of creating the TV Labs session from the `POST /session` Webdriver endpoint, leading to more reliable session requests and creation.
|
|
14
16
|
|
|
15
17
|
If a build path is provided, the service first makes a build upload request to the TV Labs platform, and then sets the `tvlabs:build` capability to the newly created build ID.
|
|
@@ -74,7 +76,10 @@ async function run() {
|
|
|
74
76
|
apiKey: process.env.TVLABS_API_TOKEN,
|
|
75
77
|
}
|
|
76
78
|
|
|
77
|
-
|
|
79
|
+
// NOTE: it is important to make sure that
|
|
80
|
+
// the wdOpts passed here are the same reference
|
|
81
|
+
// as the one passed to remote()
|
|
82
|
+
const service = new TVLabsService(serviceOpts, capabilities, wdOpts)
|
|
78
83
|
|
|
79
84
|
// The TV Labs service does not use specs or a cid, pass default values.
|
|
80
85
|
const cid = ""
|
|
@@ -141,3 +146,34 @@ run();
|
|
|
141
146
|
- **Required:** No
|
|
142
147
|
- **Default:** `false`
|
|
143
148
|
- **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.
|
|
149
|
+
|
|
150
|
+
## Methods
|
|
151
|
+
|
|
152
|
+
### `lastRequestId()`
|
|
153
|
+
|
|
154
|
+
- **Returns:** `string | undefined`
|
|
155
|
+
- **Description:** Returns the last request ID that was attached to a request made to the TV Labs platform. This is useful for correlating client-side logs with server-side logs. Returns `undefined` if no request has been made yet or if `attachRequestId` is set to `false`.
|
|
156
|
+
|
|
157
|
+
#### Example
|
|
158
|
+
|
|
159
|
+
```javascript
|
|
160
|
+
import { remote } from 'webdriverio';
|
|
161
|
+
import { TVLabsService } from '@tvlabs/wdio-service';
|
|
162
|
+
|
|
163
|
+
const capabilities = { ... };
|
|
164
|
+
const wdOpts = { ... };
|
|
165
|
+
|
|
166
|
+
const service = new TVLabsService(
|
|
167
|
+
{ apiKey: process.env.TVLABS_API_KEY },
|
|
168
|
+
capabilities,
|
|
169
|
+
wdOpts
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
await service.beforeSession(wdOpts, capabilities, [], '');
|
|
173
|
+
|
|
174
|
+
const driver = await remote(wdOpts);
|
|
175
|
+
|
|
176
|
+
// Get the last request ID
|
|
177
|
+
const requestId = service.lastRequestId();
|
|
178
|
+
console.log(`Last request ID: ${requestId}`);
|
|
179
|
+
```
|
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.9";
|
|
140
140
|
var packageJson = {
|
|
141
141
|
name: name,
|
|
142
142
|
version: version};
|
|
@@ -453,6 +453,7 @@ class TVLabsService {
|
|
|
453
453
|
_capabilities;
|
|
454
454
|
_config;
|
|
455
455
|
log;
|
|
456
|
+
requestId;
|
|
456
457
|
constructor(_options, _capabilities, _config) {
|
|
457
458
|
this._options = _options;
|
|
458
459
|
this._capabilities = _capabilities;
|
|
@@ -462,6 +463,9 @@ class TVLabsService {
|
|
|
462
463
|
this.setupRequestId();
|
|
463
464
|
}
|
|
464
465
|
}
|
|
466
|
+
lastRequestId() {
|
|
467
|
+
return this.requestId;
|
|
468
|
+
}
|
|
465
469
|
onPrepare(_config, param) {
|
|
466
470
|
try {
|
|
467
471
|
if (!Array.isArray(param)) {
|
|
@@ -507,7 +511,8 @@ class TVLabsService {
|
|
|
507
511
|
originalRequestOptions.headers = {};
|
|
508
512
|
}
|
|
509
513
|
this.setRequestHeader(originalRequestOptions.headers, 'x-request-id', requestId);
|
|
510
|
-
this.log.
|
|
514
|
+
this.log.debug('ATTACHED REQUEST ID', requestId);
|
|
515
|
+
this.setRequestId(requestId);
|
|
511
516
|
return originalRequestOptions;
|
|
512
517
|
};
|
|
513
518
|
}
|
|
@@ -524,6 +529,9 @@ class TVLabsService {
|
|
|
524
529
|
}
|
|
525
530
|
}
|
|
526
531
|
}
|
|
532
|
+
setRequestId(id) {
|
|
533
|
+
this.requestId = id;
|
|
534
|
+
}
|
|
527
535
|
continueOnError() {
|
|
528
536
|
return this._options.continueOnError ?? false;
|
|
529
537
|
}
|
package/cjs/service.d.ts
CHANGED
|
@@ -5,11 +5,14 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
5
5
|
private _capabilities;
|
|
6
6
|
private _config;
|
|
7
7
|
private log;
|
|
8
|
+
private requestId;
|
|
8
9
|
constructor(_options: TVLabsServiceOptions, _capabilities: Capabilities.ResolvedTestrunnerCapabilities, _config: Options.WebdriverIO);
|
|
10
|
+
lastRequestId(): string | undefined;
|
|
9
11
|
onPrepare(_config: Options.Testrunner, param: Capabilities.TestrunnerCapabilities): void;
|
|
10
12
|
beforeSession(_config: Omit<Options.Testrunner, 'capabilities'>, capabilities: TVLabsCapabilities, _specs: string[], _cid: string): Promise<void>;
|
|
11
13
|
private setupRequestId;
|
|
12
14
|
private setRequestHeader;
|
|
15
|
+
private setRequestId;
|
|
13
16
|
private continueOnError;
|
|
14
17
|
private buildPath;
|
|
15
18
|
private appSlug;
|
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;
|
|
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;IAKlE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAqB;gBAG5B,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,OAAO,EAAE,OAAO,CAAC,WAAW;IAQtC,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,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;IA4BtB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,YAAY;IAIpB,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/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.9";
|
|
114
114
|
var packageJson = {
|
|
115
115
|
name: name,
|
|
116
116
|
version: version};
|
|
@@ -427,6 +427,7 @@ class TVLabsService {
|
|
|
427
427
|
_capabilities;
|
|
428
428
|
_config;
|
|
429
429
|
log;
|
|
430
|
+
requestId;
|
|
430
431
|
constructor(_options, _capabilities, _config) {
|
|
431
432
|
this._options = _options;
|
|
432
433
|
this._capabilities = _capabilities;
|
|
@@ -436,6 +437,9 @@ class TVLabsService {
|
|
|
436
437
|
this.setupRequestId();
|
|
437
438
|
}
|
|
438
439
|
}
|
|
440
|
+
lastRequestId() {
|
|
441
|
+
return this.requestId;
|
|
442
|
+
}
|
|
439
443
|
onPrepare(_config, param) {
|
|
440
444
|
try {
|
|
441
445
|
if (!Array.isArray(param)) {
|
|
@@ -481,7 +485,8 @@ class TVLabsService {
|
|
|
481
485
|
originalRequestOptions.headers = {};
|
|
482
486
|
}
|
|
483
487
|
this.setRequestHeader(originalRequestOptions.headers, 'x-request-id', requestId);
|
|
484
|
-
this.log.
|
|
488
|
+
this.log.debug('ATTACHED REQUEST ID', requestId);
|
|
489
|
+
this.setRequestId(requestId);
|
|
485
490
|
return originalRequestOptions;
|
|
486
491
|
};
|
|
487
492
|
}
|
|
@@ -498,6 +503,9 @@ class TVLabsService {
|
|
|
498
503
|
}
|
|
499
504
|
}
|
|
500
505
|
}
|
|
506
|
+
setRequestId(id) {
|
|
507
|
+
this.requestId = id;
|
|
508
|
+
}
|
|
501
509
|
continueOnError() {
|
|
502
510
|
return this._options.continueOnError ?? false;
|
|
503
511
|
}
|
package/esm/service.d.ts
CHANGED
|
@@ -5,11 +5,14 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
5
5
|
private _capabilities;
|
|
6
6
|
private _config;
|
|
7
7
|
private log;
|
|
8
|
+
private requestId;
|
|
8
9
|
constructor(_options: TVLabsServiceOptions, _capabilities: Capabilities.ResolvedTestrunnerCapabilities, _config: Options.WebdriverIO);
|
|
10
|
+
lastRequestId(): string | undefined;
|
|
9
11
|
onPrepare(_config: Options.Testrunner, param: Capabilities.TestrunnerCapabilities): void;
|
|
10
12
|
beforeSession(_config: Omit<Options.Testrunner, 'capabilities'>, capabilities: TVLabsCapabilities, _specs: string[], _cid: string): Promise<void>;
|
|
11
13
|
private setupRequestId;
|
|
12
14
|
private setRequestHeader;
|
|
15
|
+
private setRequestId;
|
|
13
16
|
private continueOnError;
|
|
14
17
|
private buildPath;
|
|
15
18
|
private appSlug;
|
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;
|
|
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;IAKlE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAqB;gBAG5B,QAAQ,EAAE,oBAAoB,EAC9B,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,OAAO,EAAE,OAAO,CAAC,WAAW;IAQtC,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,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;IA4BtB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,YAAY;IAIpB,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/package.json
CHANGED
package/src/service.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
|
|
15
15
|
export default class TVLabsService implements Services.ServiceInstance {
|
|
16
16
|
private log: Logger;
|
|
17
|
+
private requestId: string | undefined;
|
|
17
18
|
|
|
18
19
|
constructor(
|
|
19
20
|
private _options: TVLabsServiceOptions,
|
|
@@ -26,6 +27,10 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
lastRequestId(): string | undefined {
|
|
31
|
+
return this.requestId;
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
onPrepare(
|
|
30
35
|
_config: Options.Testrunner,
|
|
31
36
|
param: Capabilities.TestrunnerCapabilities,
|
|
@@ -116,7 +121,9 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
116
121
|
requestId,
|
|
117
122
|
);
|
|
118
123
|
|
|
119
|
-
this.log.
|
|
124
|
+
this.log.debug('ATTACHED REQUEST ID', requestId);
|
|
125
|
+
|
|
126
|
+
this.setRequestId(requestId);
|
|
120
127
|
|
|
121
128
|
return originalRequestOptions;
|
|
122
129
|
};
|
|
@@ -138,6 +145,10 @@ export default class TVLabsService implements Services.ServiceInstance {
|
|
|
138
145
|
}
|
|
139
146
|
}
|
|
140
147
|
|
|
148
|
+
private setRequestId(id: string) {
|
|
149
|
+
this.requestId = id;
|
|
150
|
+
}
|
|
151
|
+
|
|
141
152
|
private continueOnError(): boolean {
|
|
142
153
|
return this._options.continueOnError ?? false;
|
|
143
154
|
}
|