@wdio/browserstack-service 8.0.0-alpha.598 → 8.0.0-alpha.607

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.
@@ -31,6 +31,15 @@ export default class BrowserstackService implements Services.ServiceInstance {
31
31
  beforeFeature(uri: unknown, feature: {
32
32
  name: string;
33
33
  }): Promise<void>;
34
+ /**
35
+ * Runs before a Cucumber Scenario.
36
+ * @param world world object containing information on pickle and test step
37
+ */
38
+ beforeScenario(world: Frameworks.World): Promise<void>;
39
+ /**
40
+ * For CucumberJS
41
+ */
42
+ beforeStep(step: Frameworks.PickleStep): Promise<void>;
34
43
  afterTest(test: Frameworks.Test, context: never, results: Frameworks.TestResult): void;
35
44
  after(result: number): Promise<void>;
36
45
  /**
@@ -44,5 +53,7 @@ export default class BrowserstackService implements Services.ServiceInstance {
44
53
  _update(sessionId: string, requestBody: any): import("got").CancelableRequest<import("got").Response<string>>;
45
54
  _printSessionURL(): Promise<void>;
46
55
  private _setSessionName;
56
+ private _setAnnotation;
57
+ private _executeCommand;
47
58
  }
48
59
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,SAAS,CAAA;AAKrF,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,QAAQ,CAAC,eAAe;IAYpE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IAZnB,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,gBAAgB,CAA4D;IACpF,OAAO,CAAC,QAAQ,CAAC,CAAgD;IACjE,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAyC;gBAGrD,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACxC,KAAK,EAAE,YAAY,CAAC,gBAAgB,EACpC,OAAO,EAAE,OAAO,CAAC,UAAU;IAavC,WAAW,CAAE,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,mBAAmB,KAAK,IAAI;IAU7F,aAAa,CAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC;IAe/D,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAepH;;;;;;OAMG;IACG,WAAW,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAQpC,UAAU,CAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAiBvC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAKrD,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU;IAOzE,KAAK,CAAE,MAAM,EAAE,MAAM;IAkB3B;;OAEG;IACH,aAAa,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAmBhC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAgCzD,cAAc,IAAI,OAAO;IAOzB,UAAU,CAAE,WAAW,EAAE,GAAG;IAU5B,kBAAkB,CAAE,MAAM,EAAE,iBAAiB;IAqB7C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;IAUrC,gBAAgB;YAuBR,eAAe;CAyBhC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,SAAS,CAAA;AAKrF,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,QAAQ,CAAC,eAAe;IAYpE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IAZnB,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,gBAAgB,CAA4D;IACpF,OAAO,CAAC,QAAQ,CAAC,CAAgD;IACjE,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAyC;gBAGrD,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EACxC,KAAK,EAAE,YAAY,CAAC,gBAAgB,EACpC,OAAO,EAAE,OAAO,CAAC,UAAU;IAavC,WAAW,CAAE,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,mBAAmB,KAAK,IAAI;IAU7F,aAAa,CAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC;IAe/D,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAepH;;;;;;OAMG;IACG,WAAW,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAQpC,UAAU,CAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAkBvC;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAM3D;;;OAGG;IACG,cAAc,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAK7C;;OAEG;IACG,UAAU,CAAE,IAAI,EAAE,UAAU,CAAC,UAAU;IAK7C,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU;IAOzE,KAAK,CAAE,MAAM,EAAE,MAAM;IAkB3B;;OAEG;IACH,aAAa,CAAE,KAAK,EAAE,UAAU,CAAC,KAAK;IAmBhC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAgCzD,cAAc,IAAI,OAAO;IAOzB,UAAU,CAAE,WAAW,EAAE,GAAG;IAU5B,kBAAkB,CAAE,MAAM,EAAE,iBAAiB;IAqB7C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG;IAUrC,gBAAgB;YAuBR,eAAe;IA0B7B,OAAO,CAAC,cAAc;YAIR,eAAe;CAqBhC"}
package/build/service.js CHANGED
@@ -84,13 +84,30 @@ export default class BrowserstackService {
84
84
  }
85
85
  }
86
86
  await this._setSessionName(suiteTitle, test);
87
+ await this._setAnnotation(`Test: ${test.fullName ?? test.title}`);
87
88
  }
88
89
  /**
89
90
  * For CucumberJS
90
91
  */
91
- beforeFeature(uri, feature) {
92
+ async beforeFeature(uri, feature) {
92
93
  this._suiteTitle = feature.name;
93
- return this._setSessionName(feature.name);
94
+ await this._setSessionName(feature.name);
95
+ await this._setAnnotation(`Feature: ${feature.name}`);
96
+ }
97
+ /**
98
+ * Runs before a Cucumber Scenario.
99
+ * @param world world object containing information on pickle and test step
100
+ */
101
+ async beforeScenario(world) {
102
+ const scenarioName = world.pickle.name || 'unknown scenario';
103
+ await this._setAnnotation(`Scenario: ${scenarioName}`);
104
+ }
105
+ /**
106
+ * For CucumberJS
107
+ */
108
+ async beforeStep(step) {
109
+ const { keyword, text } = step;
110
+ await this._setAnnotation(`Step: ${keyword}${text}`);
94
111
  }
95
112
  afterTest(test, context, results) {
96
113
  const { error, passed } = results;
@@ -233,4 +250,22 @@ export default class BrowserstackService {
233
250
  await this._updateJob({ name });
234
251
  }
235
252
  }
253
+ _setAnnotation(data) {
254
+ return this._executeCommand('annotate', { data, level: 'info' });
255
+ }
256
+ async _executeCommand(action, args) {
257
+ if (!this._browser) {
258
+ return Promise.resolve();
259
+ }
260
+ const cmd = { action, ...(args ? { arguments: args } : {}) };
261
+ const script = `browserstack_executor: ${JSON.stringify(cmd)}`;
262
+ if (this._browser.isMultiremote) {
263
+ const multiRemoteBrowser = this._browser;
264
+ return Promise.all(Object.keys(this._caps).map(async (browserName) => {
265
+ const browser = multiRemoteBrowser[browserName];
266
+ return (await browser.execute(script));
267
+ }));
268
+ }
269
+ return (await this._browser.execute(script));
270
+ }
236
271
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/browserstack-service",
3
- "version": "8.0.0-alpha.598+3ff83e6ec",
3
+ "version": "8.0.0-alpha.607+dac623702",
4
4
  "description": "WebdriverIO service for better Browserstack integration",
5
5
  "author": "Adam Bjerstedt <abjerstedt@gmail.com>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
@@ -28,12 +28,12 @@
28
28
  "typeScriptVersion": "3.8.3",
29
29
  "dependencies": {
30
30
  "@types/node": "^18.0.0",
31
- "@wdio/logger": "8.0.0-alpha.598+3ff83e6ec",
32
- "@wdio/types": "8.0.0-alpha.598+3ff83e6ec",
31
+ "@wdio/logger": "8.0.0-alpha.607+dac623702",
32
+ "@wdio/types": "8.0.0-alpha.607+dac623702",
33
33
  "browserstack-local": "^1.5.1",
34
34
  "form-data": "^4.0.0",
35
35
  "got": "^12.1.0",
36
- "webdriverio": "8.0.0-alpha.598+3ff83e6ec"
36
+ "webdriverio": "8.0.0-alpha.607+dac623702"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@wdio/cli": "^5.0.0 || ^6.0.0 || ^7.0.0"
@@ -41,5 +41,5 @@
41
41
  "publishConfig": {
42
42
  "access": "public"
43
43
  },
44
- "gitHead": "3ff83e6ece8a9ca4bf17cd937e9573e198e0ca96"
44
+ "gitHead": "dac62370266d145eeeafbfbea7e470d65a7ab663"
45
45
  }